gpt4 book ai didi

c - gdb 打印到文件

转载 作者:太空狗 更新时间:2023-10-29 15:33:11 36 4
gpt4 key购买 nike

我将我的临时字符串打印到标准输出:

printf "%s", nodeToString(myNode)

但我想将这个字符串打印到一个文件中。

我尝试了解决方案 here , 但 printf 结果仍然进入标准输出。

编辑:澄清 cIph3r 的回答。

这是我在命令行上尝试的:

$ gdb 

(gdb) attach 23053

(gdb) printf "%s", nodeToString(myNode) // This works and outputs to screen

(gdb) run printf "%s", nodeToString(myNode) > outputfile // I get this warning
The program being debugged has been started already.
Start it from the beginning? (y or n)

最佳答案

gdb 可以像 bash 一样执行流水线操作但我只知道如何从命令行使用 gdb。

首先,运行 gdb 并告诉它应该调试什么:

gdb ./prog

然后在 gdb 中,您可以使用 run

运行程序
run 

在这里您也可以使用参数运行它:

run argv1 argv2

但您也可以使用 bash 管道命令运行它:

run > outputfile

这是一样的

./prog > outputfile

但是,如果你想要输出 gdb-output,比如

(gdb) print "test"
$s1 = "test"

这不是正确的方法。你那样做:

(gdb) set logging on

但请记住不要在您要调试的程序运行时执行此操作

如果所有这些都不起作用,您可以使用 tee 从 gdb 捕获标准输出并将其重定向到一个文件:

gdb ./prog | tee output.log

然后 gdb 输出也保存在 output.log 中(但都是标准输出)

退出 gdb 后,有一个名为 output.log 的文件,其中包含您在 gdb 中看到的所有内容

关于c - gdb 打印到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940391/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com