C 解码程序集回调
在我的汇编代码中,我有一行代码C 解码程序集回调,c,assembly,callback,gdb,x86-64,C,Assembly,Callback,Gdb,X86 64,在我的汇编代码中,我有一行代码 callq *%rcx 我知道这会调用rcx指向的回调函数。但是,我不知道这个回调是在哪里实现的。我怎么才能弄明白呢 我怎么才能弄明白呢 将显示调用后立即开始执行的代码 如果该代码有一个标签,即是命名函数的一部分,GDB也会显示该标签,您可以用-Wl,-y猜测或询问链接器,该代码来自何处 如果该代码没有标签,那么就没有简单的方法可以找到源代码。如果可以重新链接可执行文件,则linker-Wl,-print map会有所帮助。使用debugger@user
callq *%rcx
我知道这会调用rcx指向的回调函数。但是,我不知道这个回调是在哪里实现的。我怎么才能弄明白呢
我怎么才能弄明白呢
将显示调用后立即开始执行的代码
如果该代码有一个标签,即是命名函数的一部分,GDB也会显示该标签,您可以用-Wl,-y猜测或询问链接器,该代码来自何处
如果该代码没有标签,那么就没有简单的方法可以找到源代码。如果可以重新链接可执行文件,则linker-Wl,-print map会有所帮助。使用debugger@user3847447%rcx表示CPU寄存器。如果之前没有其他命令显示加载了什么显式地址,那么使用调试器确实是唯一的方法。我猜在这种情况下,通过head进行调试不是一个选项……请查找%rcx指向的地址,并在该地址处反汇编内存。
(gdb) x/10i $rcx