我有一个接受管道输入的程序:
bash> echo "something" | ./program 'seomthingelse'
如何将此输入重定向到 gdb,而不创建新文件?
如何将此输入重定向到 gdb,而不创建新文件?
- 您可以创建一个命名管道(不确定这是否算作“新文件”——why您是否试图避免新文件?)
- 您可以在程序中添加延迟,然后启动它
echo "something" | ./program 'seomthingelse'
,并在它仍处于延迟状态时从另一个窗口附加到它。
第二种解决方案对于那些非常注重如何调用的程序通常非常有用,并且我发现以下实现效果很好:
int main(int argc, char *argv[])
{
if (getenv("WAIT_FOR_GDB") != NULL) {
int done = 0;
while (!done) sleep(1);
}
/* rest of main */
}
然后你设置WAIT_FOR_GDB
在环境中,并且可以花费任意时间来附加进程。连接后,步骤up
from sleep
, set var done = 1
,设置您需要的任何其他断点,以及continue
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)