Skip to content

drgn does not handle non-stripped/with-debug_info symbol files properly #464

Closed
@georges-aureau

Description

@georges-aureau

When using -s with a non-stripped/with-debug_info file, drgn does not seem to skip searching for a matching debug_info file, eg:

georges@kumba:~/ktools/drgn$ python -m drgn --version
drgn 0.0.30+27.g4738ddfa (using Python 3.12.3, elfutils 0.190, with libkdumpfile)

georges@kumba:~/ktools/drgn$ file vmcore vmlinux
vmcore:  Kdump compressed dump v6, system Linux, node node3, release 4.18.0-372.9.1.el8.x86_64, version #1 SMP Fri Apr 15 22:12:19 EDT 2022, machine x86_64, domain che-pro
vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=05f54d21df8b3a447231fb623be4d9f5aba57262, with debug_info, not stripped

georges@kumba:~/ktools/drgn$ python -m drgn -c vmcore -s vmlinux --log-level debug
drgn 0.0.30+27.g4738ddfa (using Python 3.12.3, elfutils 0.190, with libkdumpfile)
debug: loading default debugging symbols
debug: provided file vmlinux build ID 05f54d21df8b3a447231fb623be4d9f5aba57262
debug: created main module kernel
debug: couldn't find kernel build ID
debug: loading debugging symbols for 1 modules
debug: kernel (no build ID): trying standard paths in ":.debug:/usr/lib/debug" for debug file
debug: /usr/lib/debug/boot/vmlinux-4.18.0-372.9.1.el8.x86_64: No such file or directory
debug: /usr/lib/debug/lib/modules/4.18.0-372.9.1.el8.x86_64/vmlinux: No such file or directory
debug: /usr/lib/debug/lib/modules/4.18.0-372.9.1.el8.x86_64/vmlinux.debug: No such file or directory
debug: /boot/vmlinux-4.18.0-372.9.1.el8.x86_64: No such file or directory
debug: /lib/modules/4.18.0-372.9.1.el8.x86_64/build/vmlinux: No such file or directory
debug: /lib/modules/4.18.0-372.9.1.el8.x86_64/vmlinux: No such file or directory
debug: debugging symbols loaded for 0/1 modules
warning: can't find loaded modules without kernel debug info
warning: missing debugging symbols for kernel
warning: provided file vmlinux did not match any loaded modules; ignoring
warning: missing some debugging symbols; see https://drgn.readthedocs.io/en/latest/getting_debugging_symbols.html
For help, type help(drgn).
>>> import drgn
>>> from drgn import FaultError, NULL, Object, alignof, cast, container_of, execscript, implicit_convert, offsetof, reinterpret, sizeof, stack_trace
>>> from drgn.helpers.common import *
>>> from drgn.helpers.linux import *

When the symbol file contains a ".debug_info" section, drgn should skip searching for a build-id-matching debug_info file.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions