the motivation for -gline-tables-only was to make debug info much smaller,
but still include enough to get usable stack frames . We recently tried
using it in Chromium and discovered that the stack frames aren't all that
usable: Function parameters disappear, as do function namespaces.
Are there any concerns about adding a mode to -gline-tables-only (or a
second flag -gline-tables-full, or similar) that includes function
parameter info and namespace info but still omits most debug info?
I’m not convinced that the resulting debug info will dramatically smaller
than the full debug info. The largest bit of the debug info is the type
information if we are going to emit function parameters that will probably
pull in the majority of the types in the program.
Reviving this a few years later: Just letting clang emit DW_AT_linkage_name
in -g1 would give us qualified stacks, and wouldn't require serializing any
debug info for types from what I understand. gcc does
emit DW_AT_linkage_name in -g1.
We're currently using fdebug-info-for-profiling + -g1 on Android which does
give us DW_AT_linkage_name but also a bunch of other stuff, and we had to
know about the flag. If -g1 just emitted DW_AT_linkage_name by default,
that'd be pretty useful while also being pretty cheap size-wise.