Расшифровка сборки обратного вызова

В моем ассемблерном коде есть строка

    callq *%rcx

Я понимаю, что это вызывает функцию обратного вызова, на которую указывает rcx. Тем не менее, я понятия не имею, что / где этот обратный вызов реализован / что он делает. Как я могу понять это?

1 ответ

Как я могу понять это?

(gdb) x/10i $rcx

покажет вам, какой код начнет выполняться сразу после CALL,

Если этот код имеет метку (т.е. является частью именованной функции), GDB также покажет это, и вы можете догадаться (или спросить компоновщика с помощью -Wl,-y,name) откуда взялся этот код

Если этот код не имеет метки, нет простого способа узнать происхождение. Если вы можете связать исполняемый файл, компоновщик -Wl,--print-map может помочь.

Другие вопросы по тегам