【发布时间】:2020-03-21 01:56:10
【问题描述】:
我试图在gdb 中运行inkscape-0.92.3。确切地说,我试图在其主共享库中的.init 部分的第一个地址上设置断点(即/usr/lib/inkscape/libinkscape_base.so)。根据info files返回的信息,地址为0x7ffff6ebd9d0。但是当我使用b *0x7ffff6ebd9d0 在这个地址上设置断点时,我收到以下错误:
Cannot insert breakpoint 1.
Cannot access memory at address 0x7ffff6ebd9d0
这个地址就是这个库的_init函数的地址。同样的符号也存在于其他共享库中。所以我可以使用b _init在这个符号上放一个断点,这会导致很多子断点。这次所有断点都可以正常工作,我可以c(ontinue) 直到我到达libinkscape 共享库的_init 符号。有人知道原始地址案例中错误的原因吗?
【问题讨论】:
-
获取地址
0x7ffff6ebd9d0后是否重新运行程序? -
是的。但正如雇佣的俄罗斯人所说,首先应该映射地址。
标签: debugging gdb breakpoints elf inkscape