Я пытаюсь проверить процесс, который «висел» на моем сервере. Я использую GDB для attatch к процессу, как так:GDB, связанный с PID - не удается получить адрес памяти
gdb -p PID
Хотя отладчиком я бегу bt
и получить следующее:
(gdb) bt
#0 0x00007f57f4be73ba in __getpwuid_r (uid=4113672712, resbuf=0x7f57f531ce40, buffer=0x1 <error: Cannot access memory at address 0x1>, buflen=0,
result=0x7f57f531a048) at ../nss/getXXbyYY_r.c:198
#1 0x00007f5700000004 in ??()
#2 0x0000000000000060 in ??()
#3 0x0000000000000001 in ??()
#4 0x00007f5700000031 in ??()
#5 0x0000000000000000 in ??()
Является Cannot Access Memory Address
потенциальной причиной для чего этот процесс, чтобы повесить? Или это означает, что программное обеспечение прекратило работу, но все еще работает?
Это скрипт CasperJS.
Похоже, вы присоединяетесь к производственной версии приложения. Вероятно, у них есть оптимизация и отключение отлаженных символов. Поэтому вы не можете полностью полагаться на то, что говорит gdb. Например, если оптимизация включена, некоторые значения переменных будут недоступны для gdb в любой момент времени. Поэтому мой совет заключается в том, чтобы сохранить вышеуказанную информацию в виде точек данных. Но не делайте твердых выводов только по этим вопросам. К сожалению, вам нужно будет отлаживать дальше. – kaylum