Я пытаюсь научиться отладке PHP с помощью GDB. После подключения к процессу php я получаю сообщения об ошибках отладки для php5-mysql, php5-pgsql. Где можно выпустить?
# gdb -p 33087
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process 33087
Reading symbols from /usr/bin/php5...Reading symbols from /usr/lib/debug/usr/bin/php5...done.
done.
...
Reading symbols from /usr/lib/php5/20100525/pdo.so...Reading symbols from /usr/lib/debug/usr/lib/php5/20100525/pdo.so...done.
done.
Loaded symbols for /usr/lib/php5/20100525/pdo.so
Reading symbols from /usr/lib/php5/20100525/curl.so...Reading symbols from /usr/lib/debug/usr/lib/php5/20100525/curl.so...done.
done.
Reading symbols from /usr/lib/php5/20100525/mcrypt.so...Reading symbols from /usr/lib/debug/usr/lib/php5/20100525/mcrypt.so...done.
done.
...
Reading symbols from /usr/lib/php5/20100525/mysql.so...
warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20100525/mysql.so" does not match "/usr/lib/php5/20100525/mysql.so" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20100525/mysql.so" does not match "/usr/lib/php5/20100525/mysql.so" (CRC mismatch).
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20100525/mysql.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
Reading symbols from /usr/lib/php5/20100525/mysqli.so...
warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20100525/mysqli.so" does not match "/usr/lib/php5/20100525/mysqli.so" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20100525/mysqli.so" does not match "/usr/lib/php5/20100525/mysqli.so" (CRC mismatch).
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20100525/mysqli.so
Reading symbols from /usr/lib/php5/20100525/pdo_mysql.so...
warning: the debug information found in "/usr/lib/debug//usr/lib/php5/20100525/pdo_mysql.so" does not match "/usr/lib/php5/20100525/pdo_mysql.so" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20100525/pdo_mysql.so" does not match "/usr/lib/php5/20100525/pdo_mysql.so" (CRC mismatch).
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20100525/pdo_mysql.so
Reading symbols from /usr/lib/php5/20100525/pdo_pgsql.so...Reading symbols from /usr/lib/debug/usr/lib/php5/20100525/pdo_pgsql.so...done.
done.
Loaded symbols for /usr/lib/php5/20100525/pdo_pgsql.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libpq.so.5...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libpq.so.5
...
0x00007fe63e36b18d in poll () from /lib/x86_64-linux-gnu/libc.so.6
(gdb)
Как исправить ошибки, такие как «предупреждение: отладочная информация, найденная в» /usr/lib/debug/usr/lib/php5/20100525/mysql.so «не соответствует» /usr/lib/php5/20100525/mysql.so » (Несоответствие CRC). «? Интересно, что символы для других расширений php в порядке, но только для mysql, mysqli, postgres не работают.
Debian Wheezy 7.6
все пакеты php 5.4.41-0+deb7u1
,
Как исправить ошибки, такие как
warning: the debug information found in "/usr/lib/debug/usr/lib/php5/20100525/mysql.so" does not match "/usr/lib/php5/20100525/mysql.so" (CRC mismatch).
Предупреждение говорит вам, что пакеты, из которых два .so
библиотеки пришли в разных версиях, и вы должны обновить -dbg
пакет, соответствующий установленному mysql
пакет.
Эта команда:
dpkg -S /usr/lib/debug/usr/lib/php5/20100525/mysql.so \
/usr/lib/php5/20100525/mysql.so
скажет вам, какие пакеты .so
с пришли. Эта команда:
dpkg -l <package1> <package2>
скажет вам их установленные версии.
Других решений пока нет …