This code now produces almost identical symbols to the original code. I've
manually tested with the crash dumps that were failing before.
There's a few bugs/features in DIA that impacted me here:
1. Breakpad's GetSymbolFunctionName function didn't work with the output from
DIA 10.0, but worked fine with DIA 8.0 and DIA 12.0 - so I'm now linking with
DIA 12.0 (VS2013)
2. DIA does not handle correctly the case when you are trying to get private
symbol information on an address that only contains public symbol information.
This appears to be the underlying cause of the Win64 hangs
(https://connect.microsoft.com/VisualStudio/feedback/details/722366/). To solve
this I store which addresses are public symbols and do not call findSymbolByRVA
with SymTagFunction on those addresses.
3. DIA 12.0 fixes a long standing bug where SymTagData children of a
SymTagFunction were an incorrect type when the function was being called using
LocIsEnregistered parameters, this was causing the GetFunctionStackParamSize to
return the wrong stack size when the function was only using registers to pass
arguments.
Issue 1634002: Change PrintFunctions to print functions in address order and not print duplicate public functions.
(Closed)
Created 10 years, 6 months ago by Will Harris
Modified 10 years, 6 months ago
Reviewers: Mark Mentovai
Base URL: http://google-breakpad.googlecode.com/svn/trunk/
Comments: 8