使用dtrace、lldb或gdb可以查找负责stdout或stderr中的一行输出的文件或代码行。具体的步骤如下:
sudo dtrace -n 'syscall::write*:entry /arg0 == 1 || arg0 == 2/ { printf("%s", copyinstr(arg1, arg2)); }'
lldb <可执行文件路径>
breakpoint set --name write
run
gdb <可执行文件路径>
break write
run
需要注意的是,以上方法适用于C/C++等编程语言,对于其他编程语言可能需要使用相应的调试工具或方法。此外,对于stdout和stderr的输出,具体的文件和代码行可能因程序的实现而异,需要根据具体情况进行调试和查找。
领取专属 10元无门槛券
手把手带您无忧上云