gdb无法在lstat调用中断

时间:2010-07-21 23:29:47

标签: php c debugging gdb

我正在调试PHP 5.2.9并且一切正常,但是今天在调试期间我看到gdb在我设置时没有停止:

(gdb) break lstat

断点位于列表中

(gdb) info breakpoints
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00002aaaaf810ea0 

但是,如前所述,执行期间gdb在调用lstat函数时不会停止。 请注意,我确信lstat是由PHP引擎调用的,因为我可以使用strace看到调用。

请帮帮我,gdb有什么问题?

2 个答案:

答案 0 :(得分:3)

尝试在lstat系统调用

上设置catchpoint
(gdb) catch syscall lstat
Catchpoint 1 (syscall 'lstat' [107])
(gdb)

您需要gdb 7.0或更高版本

答案 1 :(得分:0)

strace向您显示PHP正在调用系统调用lstat,但您的断点实际上是在库函数lstat()上。它可能是一个直接调用lstat系统调用的不同库调用。

ltrace显示什么?