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

时间:2013-04-15 12:36:52

标签: c++ error-handling gnu output m4

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

我在想也许会写一个m4脚本来解析代码库并注入它们放入的函数的字符串结构(当然不包括它们自己)。

还有其他/更好的想法吗?

1 个答案:

答案 0 :(得分:1)

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