Анализ дампов ядра, генерируемых несколькими приложениями, с помощью gdb
У меня есть дамп ядра, сгенерированный 2 приложениями -> /usr/bin/python и /usr/bin/app1. Я знаю, что свалка может быть проанализирована
gdb /path/to/app /path/to/core
но есть ли способ включить оба аргумента в спор?
Я попробовал gdb '/usr/bin/python /usr/bin/app1' core.xxx, но это кажется неправильным.
Какие-либо предложения?
1 ответ
Я думаю, что вы не можете достичь того, что вы хотите, с помощью одного вызова gdb
, Но вы могли бы бежать gdb
дважды, в разных терминальных окнах. Я делал это не раз, и это работает довольно хорошо (за исключением того, что ваш собственный мозг мог быть слегка перегружен).
gdb
процесс может отлаживать только одну единственную программу с одним отлаженным процессом или (для посмертной отладки) одну core
файл.
И данный core
файл создается путем аварийного завершения одного процесса (не нескольких), поэтому я не понимаю ваш вопрос.
По-видимому, у вас есть сбой в каком-то исполнении python
вероятно, дополнен вашим неисправным кодом C. Я предлагаю иметь отлаживаемый вариант Python, возможно, установив python3-all-dbg
пакет или что-то подобное, затем используйте gdb
в теме. Конечно, скомпилируйте ваш код C, подключенный к Python, с включенной отладкой. Возможно, вы нарушили какой-то инвариант сборщика мусора Python.