So the issue is: if there is a .gnu_debugaltlink GDB will try to load
that file and throw an error if it can't. That path is absolute and GDB
does _not_ look for that path/file anywhere else, not even inside
'debug-file-directory'.

GDB seems to only look at section .gnu_debugaltlink in debug/.build-
id/nn/nnnnnn.debug, it does not seem to use that section from the binary
at all.

Due to that, another workaround is to modify that section to point to
the 'right' place:

1) use objcopy to dump .gnu_debugaltlink from debug/.build-id/nn/nnnnnn.debug 
into a file
2) use sed to modify the path in the dump file
3) use objcopy to update .gnu_debugaltlink section in 
debug/.build-id/nn/nnnnnn.debug

As in:
$ objcopy --dump-section .gnu_debugaltlink=altlink 
/tmp/dbgsym/usr/lib/debug/.build-id/76/e9f820204912084fd156c593b2c92f1a4b51f1.debug
$ sed -i 's:^:/tmp/dbgsym:' altlink
$ objcopy --update-section .gnu_debugaltlink=altlink 
/tmp/dbgsym/usr/lib/debug/.build-id/76/e9f820204912084fd156c593b2c92f1a4b51f1.debug

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/1818918

Title:
  gdb doesn't search in debug-file-directory for .gnu_debugaltlink

Status in Apport:
  Fix Released
Status in apport package in Ubuntu:
  New
Status in gdb package in Ubuntu:
  Confirmed

Bug description:
  As far as I can tell gdb version 8.2.90 isn't searching the debug-
  file-directory, which I set, for the '.gnu_debugaltlink' which is in
  the debug symbols. Here's the error I'm seeing:

  Type "apropos word" to search for commands related to "word".
  Reading symbols from /srv/vms/apport-sandbox-dir/Ubuntu 
19.04/amd64/report-sandbox//usr/bin/gnome-calculator...
  Reading symbols from /srv/vms/apport-sandbox-dir/Ubuntu 
19.04/amd64/report-sandbox/usr/lib/debug/.build-id/95/59c4c5ee30eb66d47bb9bd64784a69c9a6de6b.debug...
  could not find '.gnu_debugaltlink' file for 
/srv/vms/apport-sandbox-dir/Ubuntu 
19.04/amd64/report-sandbox/usr/lib/debug/.build-id/95/59c4c5ee30eb66d47bb9bd64784a69c9a6de6b.debug
  (No debugging symbols found in /srv/vms/apport-sandbox-dir/Ubuntu 
19.04/amd64/report-sandbox/usr/lib/debug/.build-id/95/59c4c5ee30eb66d47bb9bd64784a69c9a6de6b.debug)

  Here's part of an strace of what's going on behind the scenes:

  lstat("/srv/vms/apport-sandbox-dir/Ubuntu 
19.04/amd64/report-sandbox/usr/lib/debug/.build-id/95/59c4c5ee30eb66d47bb9bd64784a69c9a6de6b.debug",
 {st_mode=S_IFREG|0644, st_size=839744, ...}) = 0 
  openat(AT_FDCWD, 
"/usr/lib/debug/.dwz/x86_64-linux-gnu/gnome-calculator.debug", 
O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

  This is the only time "/usr/lib/debug" is searched, generally
  "/srv/vms/apport-sandbox-dir/Ubuntu 19.04/amd64/report-
  sandbox/usr/lib/debug/" is used. I'll attach the full strace though.

  For completeness here's the gdb command I'm using:

  Calling gdb command: '/srv/vms/apport-sandbox-dir/Ubuntu 19.04/amd64
  /report-sandbox/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2' '/srv/vms
  /apport-sandbox-dir/Ubuntu 19.04/amd64/report-sandbox/usr/bin/gdb'
  --ex 'set debug-file-directory /srv/vms/apport-sandbox-dir/Ubuntu
  19.04/amd64/report-sandbox/usr/lib/debug' --ex 'set solib-absolute-
  prefix /srv/vms/apport-sandbox-dir/Ubuntu 19.04/amd64/report-sandbox'
  --ex 'add-auto-load-safe-path /srv/vms/apport-sandbox-dir/Ubuntu
  19.04/amd64/report-sandbox' --ex 'set solib-search-path /srv/vms
  /apport-sandbox-dir/Ubuntu 19.04/amd64/report-sandbox/lib/x86_64
  -linux-gnu' --ex 'set data-directory /srv/vms/apport-sandbox-
  dir/Ubuntu 19.04/amd64/report-sandbox/usr/share/gdb' --ex 'file
  "/srv/vms/apport-sandbox-dir/Ubuntu 19.04/amd64/report-
  sandbox//usr/bin/gnome-calculator"' --ex 'core-file
  /tmp/apport_core_1b6dn6np'

To manage notifications about this bug go to:
https://bugs.launchpad.net/apport/+bug/1818918/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to