Анализ дампов ядра, генерируемых несколькими приложениями, с помощью 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.

Другие вопросы по тегам