envoyproxy/envoy

DWO files seem to be corrupted / truncated

Open

#13,578 opened on Oct 14, 2020

View on GitHub
 (11 comments) (0 reactions) (1 assignee)C++ (5,373 forks)batch import
area/buildhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Title: Debugger cannot read local variables or full stack

Description: When trying to read a local variable or get a full backtrace in gdb, I get the following error:

bt
DW_FORM_strp pointing outside of .debug_str section [in module /usr/local/bin/bazel-out/k8-dbg/bin/external/envoy/source/extensions/transport_sockets/tls/_objs/context_config_lib/context_config_impl.pic.dwo]

I expect to see a full backtrace when I run backtrace.

Moreover, when I run readelf on a randomly chosen dwo file, I see a bunch of errors:

readelf -w bazel-out/k8-dbg/bin/source/server/_objs/ssl_context_manager_lib/ssl_context_manager.pic.dwo > /dev/null
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode 37 seen
readelf: Error:  Unknown macro opcode ea seen
readelf: Error:  Unknown macro opcode e3 seen
readelf: Error:  Unknown macro opcode 94 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode d9 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode d6 seen
readelf: Error:  Unknown macro opcode 7f seen
readelf: Error:  Unknown macro opcode c1 seen
readelf: Error:  Unknown macro opcode a6 seen
readelf: Error:  Unknown macro opcode ad seen
readelf: Error:  Unknown macro opcode b1 seen
readelf: Error:  Unknown macro opcode 2c seen
readelf: Error:  Unknown macro opcode 28 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode ad seen
readelf: Error:  Unknown macro opcode b2 seen
readelf: Error:  Unknown macro opcode a5 seen
readelf: Error:  Unknown macro opcode a6 seen
readelf: Error:  Unknown macro opcode d4 seen
readelf: Error:  Unknown macro opcode 7f seen
readelf: Error:  Unknown macro opcode 70 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode d4 seen
readelf: Error:  Unknown macro opcode 97 seen
readelf: Error:  Unknown macro opcode cb seen
readelf: Error:  Unknown macro opcode 53 seen
readelf: Error:  Unknown macro opcode ae seen
readelf: Error:  Unknown macro opcode ad seen
readelf: Error:  Unknown macro opcode 20 seen
readelf: Error:  Unknown macro opcode 98 seen
readelf: Error:  Unknown macro opcode 9e seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode 6b seen
readelf: Error: DW_MACRO_start_file used, but no .debug_line offset provided.
readelf: Error:  Unknown macro opcode c2 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode 92 seen
readelf: Error:  Unknown macro opcode 86 seen
readelf: Error:  Unknown macro opcode 71 seen
readelf: Error:  Unknown macro opcode c6 seen
readelf: Error:  Unknown macro opcode b6 seen
readelf: Error:  Unknown macro opcode d0 seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode e7 seen
readelf: Error:  Unknown macro opcode cb seen
readelf: Error:  Unknown macro opcode 81 seen
readelf: Error:  Unknown macro opcode 8f seen
readelf: Error: .debug_macro section not zero terminated
readelf: Error:  Unknown macro opcode b6 seen
readelf: Error:  Unknown macro opcode 50 seen
readelf: Error:  Unknown macro opcode 82 seen
readelf: Error:  Unknown macro opcode a0 seen
readelf: Error: DW_MACRO_start_file used, but no .debug_line offset provided.
readelf: Error:  Unknown macro opcode cc seen
readelf: Error:  Unknown macro opcode 0b seen
readelf: Error:  Unknown macro opcode dd seen
readelf: Error: .debug_macro section not zero terminated

Repro steps:

bazel build -s -c dbg //source/exe:envoy-static
readelf -w bazel-out/k8-dbg/bin/source/server/_objs/ssl_context_manager_lib/ssl_context_manager.pic.dwo > /dev/null

I would like to produce a call stack, but this issue prevents outputting a call stack.

Contributor guide