GDB не может сломать на вызове lstat - PullRequest
1 голос
/ 22 июля 2010

Я отлаживаю 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 ]

3 голосов
/ 22 июля 2010

Попробуйте установить точку перехвата при syscall lstat

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

Вам понадобится GDB 7.0 или выше

0 голосов
/ 22 июля 2010

strace показывает, что PHP вызывает системный вызов lstat, однако ваша точка останова фактически находится в библиотечной функции lstat(). Возможно, это другой библиотечный вызов, который напрямую вызывает системный вызов lstat.

Что показывает ltrace?

...