在编译过程中,将对C ++类析构函数的名称进行解密。例如,类student
的析构函数的名称将被编译为类似_ZN7studentD2Ev
的名称。所以我不知道类析构函数的确切名称。我想对析构函数进行一些分析和转换。
有没有办法在LLVM IR传递(或Machine Pass)中获取C ++程序的所有类析构函数?
答案 0 :(得分:1)
您可以尝试根据名称修饰来猜测。
根据C++ ABI,使用以下方案之一的析构函数encoded的名称:
然后跟随function type,在析构函数的情况下为Ev
。
这可能对您有用,但是请注意,它不是跨平台的解决方案。
对于您的问题可能有更好,更合适的解决方案,但我不知道。