что может заставить pdb.set_trace () быть проигнорированным?

Я пытаюсь отладить программу Python, и я ввел классика, 'импортируют pdb; pdb.set_trace ()' строка в функции, незадолго до вызова, который генерирует отслеживание стека. Однако тот вызов, кажется, проигнорирован, т.е. ничего не происходит, и я не получаю подсказку pdb.

В той точке программы существует только один активный поток. Никакое исправление обезьяны pdb модуля не было обнаружено.

Любая справка на том, что могло заставить вызов к set_trace быть проигнорированным, приветствуется.Спасибо.

Информация о платформе: Debian сжимают + Python 2.6.5

Извлечение кода:

import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid

вывод:

<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
11
задан gurney alex 12 August 2010 в 10:52
поделиться

2 ответа

Возможно, у вас есть какой-то хитрый код, который манипулирует функцией trace сложным образом? Или вы используете ускоритель типа psyco?

7
ответ дан 3 December 2019 в 09:39
поделиться

Вы, вероятно, не выполняете этот оператор, потому что:

  • трассировка стека находится не там, где вы думал, что это
  • , вы вставили вызов set_trace в похожее, но не в том месте
  • вы запускаете другой файл .py чем тот, который вы редактировали
  • , у вас есть собственный локальный файл pdb.py который импортируется вместо тот из stdlib
0
ответ дан 3 December 2019 в 09:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: