@rion

rion

rion
rion

Дата рождения: 17.01.1984

айтишнег, веллер

2 я читаю 22 меня читают
324 постов
502 комментариев
rion
17 Dec 2015

как в довольно большой программе (несколько десятков если не сотен тысяч строк кода) по-простому отыскать маленького подлеца время от времени пишущего что-то в stdin?

весь код вражеский и разбираться в нем особо не хочется. но тем не менее есть возможность пропатчить всё что угодно включая платформу на которой оно бежит.

17 Dec 2015

rion, а погрепать cout/printf - не вариант :)

17 Dec 2015

mva, простой вариант (что вижу то и грепаю) уже погрепал. ничего подозрительного не нашел :(

#ipqpa/2 в ответ на /1
17 Dec 2015

rion, 1) ты имел в виду stdout
2) оно может срать этим либо частями (т.е. грепать нужно не всю строку, а отдельные слова),
3) оно может срать даже не своим сообщением, а полученным извне :)

#ipqpa/3 в ответ на /2
17 Dec 2015

mva, короче у меня есть getline в программе, который при определенных событиях в приложении сам собой завершается и возвращает пустую строку. если быть точным то "\n\0".
пробовал заменить на getchar. поведение такое же, только на этот раз возвращает EOF.
запускаю приложение я сам с консольки и на stdin ничего и никаким образом не даю.

#ipqpa/4 в ответ на /3
17 Dec 2015

в общем strace кажется умеет показывать стек.
в купе с умным фильтром я думаю получится.

#ipqpa/5 в ответ на /4
17 Dec 2015

бля. кароч, через LD_PRELOAD можно загрузить свою либу в которой определён символ printf, и из этой функции делать backtrace

#ipqpa/8 в ответ на /7
17 Dec 2015

hirthwork, а. ок. знаю про такую технику.
надо только что-то сильно низкоуровневое переопределить. близкое к сисколам.
сеньк.

#ipqpa/9 в ответ на /8
17 Dec 2015

стопудово write с проверкой fd на единицу (или двойку) будет достаточно. ниже только сисколлы

#ipqpa/10 в ответ на /9

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.