Closed Bug 520651 Opened 15 years ago Closed 10 years ago

Stack unwind info is not complete

Categories

(Firefox Build System :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(blocking2.0 -, status2.0 wanted)

RESOLVED FIXED
mozilla13
Tracking Status
blocking2.0 --- -
status2.0 --- wanted

People

(Reporter: jrmuizel, Unassigned)

References

Details

Dumping the fpo information xul.dll it seems like we are missing unwind information for a bunch of the code (more info at bug 519616). I can't reproduce this with VS2008 and so I wonder if maybe the problem only occurs with VS2005. It would be interesting if rel-eng could do a build with VS2008 to see if that fixes the problem.
Blocks: 519616
I know catlee was poking at VC2008, but I don't know what he determined.
This is still biting us, as evidenced by bug 529363. I'll take a look at the symbol dumping code and see if we're just missing something. I also have a PGO build done with VC2010 here that I can compare against.
Assignee: nobody → ted.mielczarek
Status: NEW → ASSIGNED
OS: Mac OS X → Windows XP
Dumping the symbols on my VC2010 PGO build shows that we have unwind info for the function from bug 529363:
FUNC 2150c9 f5 8 nsAppShellService::RegisterTopLevelWindow(nsIXULWindow *)
STACK WIN 4 2150c9 f5 8 0 8 0 1c 0 1 $T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =

In fact, we have a *lot* more STACK lines in the output:
This is from 3.6b2, built with VC8:
grep "^STACK" /home/luser/symbols/xul.pdb/B36564041E3D436EBB92C44DBA08920C2/xul.sym  | wc -l
44747

This is from a trunk build, built with VC10:
$ grep "^STACK" ../pgo-vc10/dist/crashreporter-symbols/xul.pdb/B7CC83471F9F41409B5B7836F7C6F95C2/xul.sym | wc -l
121491

That's a big discrepancy!

However, bug 529363 shows that the VC debugger can in fact get a stack, so there must be something we're missing.
It would be interesting to see if VC9 is closer to VC10 or to VC8.
With the symbols from Firefox 3.6b2, nearly 18% of functions in xul.sym are missing unwind info:
http://people.mozilla.com/~tmielczarek/no-unwind.lst

In my VC10 PGO build, only 11 functions are in that list, and they're all compiler miscellany, nothing important.

I'm going to try a VC9 PGO build next.
blocking2.0: --- → ?
I'm not sure there's anything we can block on here, short of switching to a newer compiler (which might be a good idea).
I can't get a VC9 PGO build to complete, it keeps running out of memory on my system. (Odd that VC8 and VC10 both work.)
Finally got a VC9 PGO build to finish. It doesn't seem to be any better than VC8 here:
$ ../mozilla-central/toolkit/crashreporter/tools/win32/dump_syms.exe ./toolkit/library/xul.pdb  | grep "^STACK" | wc -l
42843

Guess we'll have to wait for VC10 to be released.
blocking2.0: ? → -
status2.0: --- → wanted
Assignee: ted.mielczarek → nobody
Status: ASSIGNED → NEW
Depends on: msvc2010
Fixed by bug msvc2010.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.