使用GDB在共享库中按地址设置断点

使用GDB在共享库中按地址设置断点,gdb,shared-libraries,Gdb,Shared Libraries,如何按地址在共享库中设置断点?假设我反汇编了一个库,找到了一条我想中断的指令,但该指令与标签没有关联: $objdump-d libFoo.so 加载库后,将ELF文件地址(bc29a)转换为正确虚拟地址的最佳方法是什么?如何将这些信息传达给GDB 感谢您的帮助。也许最简单的方法是“在solib events 1上设置停止”。这将导致gdb在加载或卸载共享库时停止。当它加载所需的库时,您将能够设置断点 然后,您可以使用“信息共享”查看每个库的偏移量。我忘了这是否是文本部分的偏移量;所以您可能

如何按地址在共享库中设置断点?假设我反汇编了一个库,找到了一条我想中断的指令,但该指令与标签没有关联:

$objdump-d libFoo.so

加载库后,将ELF文件地址(bc29a)转换为正确虚拟地址的最佳方法是什么?如何将这些信息传达给GDB


感谢您的帮助。

也许最简单的方法是“在solib events 1上设置停止”。这将导致gdb在加载或卸载共享库时停止。当它加载所需的库时,您将能够设置断点


然后,您可以使用“信息共享”查看每个库的偏移量。我忘了这是否是文本部分的偏移量;所以您可能需要进行一些试验。

为什么不在函数的偏移量处设置断点?像
b*(函数名+偏移量)
bc29a:       48 89 f5                mov    %rsi,%rbp