让错误输出包括最后几行代码

Have error output include last couple lines of code

本文关键字:几行 代码 错误 输出 包括 最后      更新时间:2023-10-16

是否可能,如果可能,您将如何使错误输出包括最后几行代码?我知道GNU g++对__LINE____FUNC__的支持,但它们只将行号作为int和函数名作为字符串-我想转储失败的函数代码或至少是程序执行的最后几个命令。

我在想也许写一个m4脚本,将解析通过代码库和注入的函数的字符串结构(当然不包括自己)。

还有其他更好的主意吗?

完全不要更改代码。使用__LINE____FUNC__对误差输出进行后处理。也就是说,以my-prog > $(tty) 2>&1 | post-process的身份运行程序,其中post-process可以访问代码库并生成所需的文本。您可能希望通过添加标记来稍微修改代码,以便后处理更容易找到函数名和行号。