2015-08-26 3 views
0

Во время выполнения программы я получаю сообщения о печати в консоли с обесцененной информацией. Прежние кодеры оставил несколько print линии где-то в программе, и я хочу, чтобы избавиться от них:Как найти, откуда вызывается функция печати?

# module N123456 

...... 
print var123 
...... 

Проблема заключается в том, что программа является довольно тяжелым и состоит из многих многих крупных модулей. Есть ли какой-то простой способ определить, где расположены эти раздражающие отпечатки?

Спасибо!

+1

grep поиск по "print"? –

+0

В vi используйте '/ print'. Если вы знаете, что печатает, вы также можете искать, что печатают заявления печати, снова используя косую черту – cadams

+0

@cadams это довольно сложно .. слишком много полезных отпечатков вдоль кода и, к сожалению, все избыточные 'print' обычно напечатайте только некоторые числовые значения переменных или их комбинации ... – funnyp0ny

ответ

2

несколько предложений:

Выполните поиск и замену, как это было предложено Вивек Ананд, но вместо комментирования print линий, добавить ; print __file__ к ним , и посмотрим, откуда это.

Вы также можете запустить программу через отладчик, сначала перейдя через функции и обращая внимание на то, когда появляются ложные print s. Это может помочь вам определить места, из которых они происходят (но это зависит от структуры программы, вам может понадобиться переходить по многим строкам кода один за другим).

+0

Спасибо, мне нравится эта идея! В дополнение к имени файла можно также добавить текущий номер строки .. и это действительно упрощает всю сделку! – funnyp0ny

1

Просто используйте поиск и замену. Найдите «печать» и замените его на «#print». Это если вы используете vim.

:%s/print/#print/ig 

Это закомментируйте их

+0

, но это также будет комментировать все другие полезные отпечатки, не так ли? – funnyp0ny

+0

Да, это так. Но я не могу думать о другом. Лучшая идея, о которой я могу думать, - найти все отпечатки (как правило, выделяется, когда вы помещаете их в поиск), и продолжайте проверять, нужны они вам или нет. Поиск и замена использования зависит от количества требуемых отпечатков, а число из них у вас нет. –

+0

Да, я думаю, что это единственный способ тоже ... но поскольку программа огромна и с потоками, поэтому эти отпечатки появляются более или менее случайно .. для ее удаления может потребоваться несколько дней. – funnyp0ny

Смежные вопросы