@callback_value: value passed at callback registering 2 cases: @addr_func: called function address @addr_ret: return address after the call OR @addr_ret is 0 @addr_func is the current returned address */
| 14 | @addr_func is the current returned address |
| 15 | */ |
| 16 | void callCallback(unsigned __int64 callback_value, TTD::GuestAddress addr_func, TTD::GuestAddress addr_ret, struct TTD::TTD_Replay_IThreadView* thread_info) { |
| 17 | printf("[CALL CALLBACK] "); |
| 18 | printf("arg1: %llx, arg2: %llx, arg3: %llx, arg4: %llx\n", callback_value, addr_func, addr_ret, thread_info); |
| 19 | TTD::Position* current = thread_info->IThreadView->GetPosition(thread_info); |
| 20 | printf("Program counter: %llx | Position: %llx:%llx\n", thread_info->IThreadView->GetProgramCounter(thread_info), current->Major, current->Minor); |
| 21 | if (addr_ret == 0) { |
| 22 | printf("Returned value: %llx\n", thread_info->IThreadView->GetBasicReturnValue(thread_info)); |
| 23 | } |
| 24 | return; |
| 25 | } |
| 26 | |
| 27 | /* |
| 28 | * @callback_value: value passed at callback registering |
nothing calls this directly
no test coverage detected