是否可能,如果是这样,你将如何使错误输出包括最后几行代码?我知道GNU g ++对__LINE__
和__FUNC__
的支持,但那些只将行号作为int而函数名作为字符串 - 我想转储失败代码的函数或者至少程序执行的最后几个命令。
我在想也许会写一个m4脚本来解析代码库并注入它们放入的函数的字符串结构(当然不包括它们自己)。
还有其他/更好的想法吗?
答案 0 :(得分:1)
根本不要更改您的代码。使用__LINE__
和__FUNC__
并对错误输出进行后期处理。也就是说,以my-prog > $(tty) 2>&1 | post-process
运行您的程序,其中post-process
可以访问您的代码库,并可以生成所需的文本。您可能希望通过添加标记来稍微修改代码,以便后处理更容易找到函数名称和行号。