如果我使用相同的源重建,EXE是否具有相同的偏移量
If I rebuild using the same sources, will the EXEs have the same offsets?
我从用户那里得到一些带有Dr.Watson信息的崩溃报告,包括EIP。我想开始调试,然后设置EIP,看看这会把我带到哪一行。我还在Release构建中启用了line Info。
我在源代码管理中有一个标签,这样我就可以提取我用来构建它的源代码,但我不知道链接器是否会生成具有相同偏移量的EXE,否则EIP将毫无用处。
除非您能够确保自将代码签入版本控制以来,使用的所有库、所有源和链接器都没有更改,否则偏移量不会相同。这就是为什么许多公司实际上会不遗余力地将可执行文件置于配置管理之下。
根据经验,如果偏移量不一样,那么它会很快变得很明显,所以你至少可以检查一下,如果事情没有意义,就忽略EIP和其他可执行地址偏移量。
如果您构建了一个映射文件,并从崩溃报告的版本中保存了该文件,并且从重建的源中保存了映射文件,那么您可以进行一些比较分析(实际上是逐个函数),以从可执行地址和偏移量中获得一些有用性。
相关文章:
- .EXE是否可以使用间接导入的 DLL 中的符号?
- 是否可以在C++中基于程序集输出(.dll或.exe)定义变量
- 如何在Windows上检查EXE是否具有/GS安全保护
- 是否可以将 EXE 文件作为 lib 文件链接到另一个项目?
- 如何检查 win32 exe 文件是否已运行?(使用 win32 API 代码)
- C++编译器 g++.exe 无法编译简单的测试程序 - 确定 CXX 编译器是否工作失败
- 是否可以将Visual Studio 2017将C 代码编译到EXE以外的文件类型中
- 有没有办法检查.exe(或进程)是否在远程计算机上运行
- 是否有获取 *.exe 文件的产品名称的函数?
- 是否有 gcc 命令可以链接同一目录中的所有 .o 文件并生成.exe文件
- 线程执行在IDE中和C 中的EXE应用程序中是否有所不同
- 是否有SonarQube.Scanner.MSBuild.exe的详细模式
- 是否可以使用 C++ 在我的程序中嵌入另一个 exe
- EXE 是否可以调用启动它的 DLL
- 是否可以通过命令行将VBScript数组传递到C EXE
- 是否可以将 JPEG(或 PNG)类型的图像设置为 exe(C++)
- 是否将资源(声音文件)添加到exe?[MS Visual Studio 2012]
- 是否可以使用十六进制编辑器从exe文件中删除代码?(c++)
- 是否可以在Mac上将C++代码编译为.exe
- 是否可以控制源文件中的cl.exe选项