如何使 gdb 在反汇编模型上显示原始的非修改函数名称?
void outputString(const char *str) { cout << "outputString(const char *str) : " << str << endl } 事实证明, Dump of assembler co…
g++:如何整理导出的符号
我正在尝试编译一个使用 JNI 的 Java 库。当我启动程序时,我看到崩溃并出现 UnsatisfiedLinkError,它表示在 DLL 中找不到特定方法。 经过仔细检查,…
有什么可以改变 GCC 中的导出名称修改方案吗?
我正在尝试构建一个我拥有的项目,它有几个导出的函数。这些函数遵循 stdcall 约定,如果使用 GCC 编译,它们会被破坏,因为 Func@X 其他编译器会像这…
使用 Visual Studio sdk 取消修饰函数名称
要取消修饰 Visual Studio 生成的损坏的 C++ 名称,可以使用 undname.exe。 但是,如果您想避免每次需要未修饰时创建完整进程的开销,该怎么办? Visu…
我怎样才能截断损坏的 C++ GDB 的反汇编命令显示的标识符?
GDB 的反汇编命令非常适合短 C 标识符,例如 main。对于长的、损坏的 C++ 标识符来说,冗长是多余的。例如,使用 icpc,我 (gdb) disassemble 0x49de2…
Scala:如何动态实例化对象并使用反射调用方法?
在 Scala 中,动态实例化对象并使用反射调用方法的最佳方式是什么? 我想做以下 Java 代码的 Scala 等效项: Class class = Class.forName("Foo") Obj…
生成 C++ OS/X 中的 BackTraces (10.5.7)
我一直在利用 backtrace 和 backtrace_symbols 生成编程堆栈跟踪,以便进行日志记录/诊断。 它似乎大致有效,但是,我遇到了一些混乱,并且没有与每个…
typeid() 返回 g++ 中的额外字符
class foo { public: void say_type_name() { std::cout << typeid(this).name() << std::endl } } int main() { foo f f.say_type_name() } …