New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 636649 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Debugging symbols missing from Linux Debug build.

Reported by a1628...@student.adelaide.edu.au, Aug 11 2016

Issue description

UserAgent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0

Steps to reproduce the problem:
1. Build debug version of chrome (I also included `symbol_level=2' to be sure)
2. Open in gdb
3. type `info line file_name.cpp:0' for any file 

What is the expected behavior?
GDB should give me information about the line queried. 
Example:
Line X of "file_name.cpp" starts at pc 0xffd0 and ends at 0xffff.

What went wrong?
Files are either not found by gdb or return unprintable ascii characters. 

(gdb) info line CompositedLayerMapping.cpp:0
No source file named CompositedLayerMapping.cpp.
(gdb) info line v8.cpp:0
��

Did this work before? Yes Any previous version of chrome I have compiled. Don't remember version number. Compiled ~1 year ago.

Chrome version: Version 54.0.2824.0 (64-bit)  Channel: n/a
OS Version: Ubuntu 16.04
Flash Version: Shockwave Flash 11.2 r202

Also tested on Ubuntu 14.04
 
Cc: thestig@chromium.org thakis@chromium.org mcgrathr@chromium.org
Components: Build
Owner: thomasanderson@chromium.org
Status: Assigned (was: Unconfirmed)
Summary: Debugging symbols missing from Linux Debug build. (was: Debugging symbols missing from Debug build.)
@thomasanderson, feel like taking a look at this?

I reproduced this on 14.04. I also saw that `info line chrome_main.cc:50` did work as expected. So perhaps there's something weird going on with when when symbols are loaded in the component builds, or something?
For me with Goobuntu 14.04 and gdb 7.9-gg19, "info line CompositedLayerMapping.cpp:0" works correctly.  "info line v8.cpp:0" does print garbage.  My first guesses would be bugs in gdb, gdb's handling of split-dwarf, or in the toolchain's emission of split-dwarf.  However, I tried disabling split-dwarf (gn arg use_debug_fission=false) and it did not change the behavior.  So my second guesses are bugs in gdb and the toolchain's emission of DWARF independent of split-dwarf.

Note that it's normal to not see all the symbols when using gdb "cold", i.e. before you start the program.  The program has to be running for gdb to know about all the shared objects (components).  So for me "No source file named CompositedLayerMapping.cpp." does happen before starting the program, but it finds that file fine once the program has started.  Try e.g. "b _start" or "b main" and then "run".

I also note that there is no source file named "v8.cpp".  There is a "v8.cc" and "i lin v8.cc:0" works fine.  I don't know why gdb's error message is replaced with garbage for the particular case of "i lin v8.cpp:0" when other nonexistent file names give the proper error message.  So my third guess is some obscure gdb bug in the error case but no actual problem because I haven't seen (reproduced) a failure of something that actually ought to work.

Status: WontFix (was: Assigned)
Thanks, mcgrathr@. It sounds like there's not really anything for us to do here other than punt this upstream to gdb.

Sign in to add a comment