Расшифровка сборки обратного вызова
В моем ассемблерном коде есть строка
callq *%rcx
Я понимаю, что это вызывает функцию обратного вызова, на которую указывает rcx. Тем не менее, я понятия не имею, что / где этот обратный вызов реализован / что он делает. Как я могу понять это?
1 ответ
Как я могу понять это?
(gdb) x/10i $rcx
покажет вам, какой код начнет выполняться сразу после CALL
,
Если этот код имеет метку (т.е. является частью именованной функции), GDB также покажет это, и вы можете догадаться (или спросить компоновщика с помощью -Wl,-y,name
) откуда взялся этот код
Если этот код не имеет метки, нет простого способа узнать происхождение. Если вы можете связать исполняемый файл, компоновщик -Wl,--print-map
может помочь.