我正在尝试创建一个工具(使用linux gcc),该工具将生成功能跟踪,然后可用于创建UML序列图。目前,这些工具运行良好,但是在处理C ++静态成员函数时却感到困惑。我正在做的是在对this_pointer
和__cyg_profile_func_enter()
的所有调用上记录以下函数:function_name,class_name和“ __cyg_profile_func_exit()
”。这使我以后可以生成所有对象交互的UML图。
问题是:静态成员函数没有“ this
指针”,因此我的逻辑返回了垃圾,因为我不知道该函数是静态的。我可以通过某种符号表查找功能或API在运行时确定调用函数是静态的吗?
或者建议使用其他技术。
谢谢你, 斯图尔特