Opened 13 years ago
Closed 13 years ago
#228 closed enhancement (fixed)
qmake: Add .sym file generation
Reported by: | Dmitry A. Kuminov | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Qt 4.7 |
Component: | General | Version: | 4.6.3 |
Severity: | low | Keywords: | |
Cc: |
Description
It is useful to have .sym files for all .DLLs and .EXEs since they allow to reconstruct the execution flow of a crashed application from the process dump file which is useful for analyzing crashes happening on the end user side.
The .sym files should be also read by the IBM debuggers to show the symbols when stepping through the release version of the application (that does not have debugging info built in). Although it doesn't always work (I couldn't find why so far) it's better than nothing.
Change History (6)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
The .sym support is done in r954. Note that after r957, the 'map' CONFIG option is no more present by default, but the 'sym' option is (if mapsym is present on PATH during configure).
comment:3 by , 13 years ago
In r958 I had to disable the .sym file generation in debug builds by default for two reasons:
- Crappy mapsym hangs on big .map files (e.g. the 40 MB one from the WebKit).
- It doesn't make much sense since the debug info is built into the executable in debug mode.
Applying this default (retaining the possibility to overwrite it with +sym/-sym) was a big challenge. qmake isn't well thought.
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:5 by , 13 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:6 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Implemented installing .sym files along with the target EXEs/DLLs in r963. Note that this is rather the default behavior, as long as 'sym' is present in CONFIG (since having them along is the most useful case). This may be disabled by putting 'no_install_debuginfo' to CONFIG.
The supoprt for .sym generation will be implemented by recognizing a new 'sym' flag in the CONFIG variable. This flag will turn generation of the .map file (just as the 'map' flag does) and add a rule to convert .map to .sym. The .map file will be deleted afterwards (unless 'map' is also present in CONFIG).
The default presence of the 'sym' flag will be defined by configure.cmd based on the presence of mapsym.exe (necessary for .map to .sym conversion) in PATH, just the way we do this for 'exepack' and lxlite.exe.
There will also be a new 'install_debuginfo' CONFIG flag. When present, it will cause all install targets to install .sym files along with the corresponding DLLs and executables.