Остановите запущенный процесс скрипта и получите заблокированный код

У меня есть скрипт Python, который работает на моей машине следующим образом:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
 1018 root      24   0 98836 9108 3352 S  0.0  0.1   0:00.03 python /usr/mine.py                                                                                                         

Этот процесс работает весь день, в то время как он должен работать в течение нескольких секунд, а затем останавливаться.

Интересно, есть ли способ получить текущую точку исполняемого кода, то есть точку, в которой скрипт застрял.


person Anastasios Andronidis    schedule 24.01.2014    source источник
comment
Здесь я нашел полезный комментарий: stackoverflow.com/a/147114/1067688   -  person Anastasios Andronidis    schedule 11.02.2014


Ответы (1)


Вы можете подключиться с помощью gdb и получить обратную трассировку. Это может дать или не дать вам что-то легко различимое в зависимости от того, какие символы отладки вы установили или не установили.

Что-то вроде:

>>> gdb -p 1018
(gdb) bt

Подробнее здесь:

Как прикрепить процесс в gdb

Обратные трассировки

Отладка Python в gdb

person jbee    schedule 03.05.2015