2010-07-21 32 views
1

我调试期间调试PHP 5.2.9,一切工作正常,但今天我看到,当我设置GDB不停止:GDB无法在LSTAT呼叫打破

 
(gdb) break lstat 

断点是列表

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

但是,作为执行GDB在以前写的,不停止时LSTAT函数被调用。 请注意,我确定lstat是由PHP引擎调用的,因为我可以使用strace来查看调用。

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

回答

3

尝试设置捕获点上LSTAT系统调用

(gdb) catch syscall lstat 
Catchpoint 1 (syscall 'lstat' [107]) 
(gdb) 

您需要GDB 7.0或以上

0

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

ltrace显示什么?