[ros-dev] Proposal to change .sym files
Ge van Geldorp
gvg at reactos.com
Thu Feb 3 09:24:59 CET 2005
> From: Royce Mitchell III
> It's my understanding that using addr2line against the
> nostrip file can be off sometimes, because of subtle
> differences between the two files.
I think this problem is solved now too. It was caused by the two links we
used to do, one to get file.nostrip.ext and then another one to get
file.ext. Especially when static libs were involved the second link might
produce a slightly different binary than the first.
The second link is gone now. The code and data is copied unchanged from
file.nostrip.ext to file.ext.
> Also, there will be times where there are no nostrip files,
> and we may have to figure out what's going on from the files
> the user is using.
If symbolic info was present in file.nostrip.ext (i.e. it was compiled with
-g, which at present implies DBG := 1), then it will also be present in
file.ext. So, the backtrace on e.g. BSODs should print the function
name/source file/source line in addition to the address. Which means we
won't have to use addr2line very often. If there was no symbolic info in
file.nostrip.ext, addr2line wouldn't be of help anyway.
But as I said, creating a util like addr2line for the final file.ext is a
piece of cake, it's just stringing together some calls to the rossym lib.
I'll create something this week.
Which brings me to my last point: I'd like to enable -g (creation of
symbolic info by the toolchain) for all builds, both DBG := 0 and DBG := 1.
The only downside I see is it will take more diskspace to build ReactOS
(currently 725 MB without symbolic info, 2477 MB with) and the final iso
will be slightly larger (13 MB instead of 10MB). Personally I think this is
outweighed by the possibility to have meaningful backtraces. Any objections?
Gé van Geldorp.
More information about the Ros-dev