дайте две - part 2

Aug 17, 2012 23:02

Не зря я тренировался с трюком от ivan_gandhi в дайте две
There is a way to get the output of a running process. But it should be considered a hack:
Let's say the PID of the process is 22499:

~$ touch log ~$ gdb -p 22499 (gdb) p close(1) # This closes the stdout of the running process (gdb) p open("/home/.../log", 1) # This will open the log-file with O_WRITE (gdb) c
Как раз сегодня gdb помог выяснить причину странного зависона при выводе в консоль:
имеется ппрога 1, которая  вызывает прогу 2, которая вызывает мою консольную прогу.
И моя прога падает в тот момент, где выводится hello-образная хрень в консоль.
Backtrace (bt) показал, что висим в недрах системной функции Write из libc.
Если отключить весь консольный вывод, всё это (CENSORED) работает.

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

мсвс, день прошел не зря

Previous post Next post
Up