转换 Classname::FunctionName( Para1, Para2 ) 中的符号
当抛出异常时,我使用 GNU 扩展“char** backtrace_symbols(void *buffer, int size)
”来获取堆栈跟踪。是否有一个库函数可以将符号转换为“人类可读”字符串 - 以重做名称修改?
如果没有,我会根据这篇 Wiki 文章 编写自己的函数。
具体:
Input: test.exe(_ZN10CTLTestApp12ExecuteGroupEPK19CTLTestCaseRegisterNS_11EReportTypeE+0x24c)
Output: test.exe CTLTestApp::ExecuteGroup( CTLTestCaseRegister, EReportType )
非常感谢,
查理
I'm using the GNU extension "char** backtrace_symbols(void *buffer, int size)
" to get the stack trace, when an exception is thrown. Is there a library function which converts the symbol into a "human readable" string - to redo the name mangling?
If not, I would write my own function according to this Wiki article.
Concrete:
Input: test.exe(_ZN10CTLTestApp12ExecuteGroupEPK19CTLTestCaseRegisterNS_11EReportTypeE+0x24c)
Output: test.exe CTLTestApp::ExecuteGroup( CTLTestCaseRegister, EReportType )
Thanks a lot,
Charly
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
运行给出:
有关更完整的示例和更多详细信息,请参阅在线文档关于这一点。
Running gives:
See the online documentation for a more complete example and further details on this.