Question

I get crash reports from users with some Dr. Watson info, including the EIP. I want to start debugging, then set the EIP and see which line this takes me to. I also have Line Info enabled in the Release builds.

I have a label in source control so I can pull the sources I used to build it, but I have no idea if the linker will produce an EXE with the same offsets, otherwise the EIP would not be useful.

Was it helpful?

Solution

There is no garuntee that the offsets will be the same, unless you can ensure that all libraries used, all source, and the linker have not changed since you checked the code into version control. This is why many companies will actualy go to great lengths to keep the executables under configuration management.

From experience, if the offsets are not the same, then it becomes apparent very quickly so you can at least check, and if things are not making sense, ignore the EIP and other executable address offsets.

If you build a map file and saved that from the version that the crash report came from, and a map file from the rebuilt source, then you can do some comparative analysis (Function by function really) to get some usefullness back from executable addresses and offsets.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top