我以前用bash shell中的这一行调用我的程序来捕获日志文件中的所有stdout和stderr消息
./a.out input.txt 2>&1 | tee log
Run Code Online (Sandbox Code Playgroud)
日志文件没有显示错误,但通过检查日志,很明显存在问题,程序在执行过程中突然终止.
我也尝试了这些,但结果是一样的:
./a.out input.txt > log 2>&1
./a.out input.txt |& tee log
Run Code Online (Sandbox Code Playgroud)
当我运行它而没有像这样的任何重定向:
./a.out input.txt
Run Code Online (Sandbox Code Playgroud)
我在终端窗口看到最后的错误消息:
*** Error in `./a.out': free(): invalid pointer: 0x000000000169b268 ***
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
那么,为什么我无法在日志中捕获"核心转储"消息?我该怎么做?
当我执行这样的命令时:
:g/FIXME/p
Run Code Online (Sandbox Code Playgroud)
它在我编写代码的部分打印匹配的行.我想更多地处理这个命令的输出,所以我手动选择gvim中的输出文本,打开一个新的分割窗口并手动粘贴.但是,如果输出太大,我就不能轻易复制和粘贴.
有没有办法将命令输出自动推送到新窗口?即我想要做的是这样的事情:
:g/FIXME/print_to_new_window
Run Code Online (Sandbox Code Playgroud)