dumpbin和undname是微软vs自带的两个小工具。
前者可以用于查看obj、ilb、dll等文件的符号表,后者可以用于根据Name Mangling之后的字符串反推函数原始声明。
在排查LINK 2019链接错误时,这两个命令较为有用。
1. 关于dumpbin
使用dumpbin查看符号表,举例:
dumpbin /symbols session_base.obj
使用dumpbin时,会依赖mspdb80.dll,此处需要配置环境变量。
如果把mspdb80.dll直接拷贝到dumpbin所在目录,使用vs进行编译时会报一下错误:
fatal error C1902 Program database manager mismatch; please check your installation
2. 关于undname
使用undname查看经过编译器修饰前的函数声明:
undname ??0socks_connecter_t@zmq@@QAE@PAVio_thread_t@1@PAVsession_base_t@1@ABUoptions_t@1@PAUaddress_t@1@3_N@Z