dwblaikie wrote: > > > If the client strips the debug info first into "a.out.debug" and then > > > runs llvm-dwp, they will end up with a "a.out.debug.dwp". We have clients > > > that are doing this already and we want to support them. > > > > > > OK, could we fix llvm-dwp to match the behavior, then? If the file has a > > .debug extension, strip that and add the .dwp extension. > > Here people are not using ".debug", but are using ".debuginfo"...
They could only use that for symbolizing, yeah? They wouldn't be able to debug their binary, because a debugger wouldn't know that, given the stripped binary, they need to append `.debuginfo` to find the debug info, right? (but I think debuggers do currently have the ability to add ".debug" to find the debug info) - or maybe it doesn't? (I guess reading https://sourceware.org/gdb/current/onlinedocs/gdb.html/Separate-Debug-Files.html - it's never a simple mapping from `binary` to `binary.debug` - either it uses debuglink, in which case the filename is encoded in the debuglink and could be anything, or it's buildID, in which case it is `binary.debug`, but in a buildID-named directory) > Again, nothing is enforced and people are left to use llvm-objcopy + llvm-dwp > how ever they want. Getting a solution that does everything might be nice. > Any thoughts on modifying llvm-dwp to be able to do all of this and provide > some path for people where it can either just create a .dwp file for a given > executable _or_ it can create a `.debug` file, strip the original file, and > create a `.dwp` file? I don't know that llvm-dwp needs to do everything, that's a bit against the grain of *nix tool design. But certainly llvm-objcopy could be more ergonomic (like a one-shot, that both strips the debug info from the binary, and produces the keep-only-debug in `binary.debug` - an even smaller feature would be, like `llvm-dwp` has a default `-o` of `binary.dwp`, `llvm-objcopy` could have a default output file when using `--only-keep-debug` of `binary.debug`, and `llvm-dwp` could grow a special case for `if the file ends in .debug, strip that before adding .dwp` (maybe more generally, strip any `.word` file extension before adding `.dwp` though that might be overly aggressive on *nix systems where users don't expect `.suffix` to be special cased at all) So I guess that'd be the smallest two features I'd suggest starting with 1) llvm-objcopy (& ideally, if someone wanetd to write the patch, binutils objcopy) defaulting to `binary.debug` as the output file when using `--only-keep-debug` 2) llvm-dwp stripping the `.debug` suffix, if it appears, before adding `.dwp` (this one's a bit tricky/I could imagine some disagreement, because someone might`ve just named their real binary "blah.debug" but I'm not sure there's much else to do in that case if we're going to support doing things with debug info with the `--only-keep-debug` file, and with the original unstripped binary, and with the stripped binary+`--only-keep-debug`, etc... have to have some basename to derive everything from) A wrapper script or program (maybe it could be built into llvm-objcopy, but I'm a little hesitant there, but would be open to other folks opinion on it for sure) that ingests the binary and produces the 3 products (stripped binary, binary.debug, binary.dwp) seems easy enough to provide. > > > The compiler and linker drivers are staying out of this and we expect > > > people to do this on their own, so this is what we end up with when there > > > is no enforcement. > > > > > > They aren't doing it on their own though - they're using llvm-dwp and its > > defaults (they're passing it a .debug file and getting a .debug.dwp file - > > it's the defaults you/we are worried about, and how to make other tools > > work well with those defaults). We can change those defaults if they don't > > work well/don't create a consistent environment. > > > I am not sure why this is such a sticking point. Lets make the debugger > > > work for people. > > > > > > As I explained above - my concern is that supporting a wider variety of > > ways these files can be named/arranged means more variants that need to be > > supported across a variety of tooling (symbolizers and debuggers - not just > > LLVM's but binutils, etc too). > > But that's my 2c - if LLDB owners prefer this direction, so be it. Wouldn't > > mind hearing some other people's perspectives on the issues around limiting > > variation here. > > I am happy to hear any other opinions as well. I tend to want to make my life > easier and ease the support burden I run into everyday where people that know > nothing about split DWARF are trying to use it and failing and require tech > support to make it work for them. I am happy to suggest a path to follow, in > fact I am going to write up the best practices on a DWARF group here at work > that I can point poeple to. Yeah, I do want people to not have problems here/for things to work - I worry that making too many different things work is good short term (yay, many users are happy without having to change anything), but harmful long term when there's a wider variety of ways people do things and then new tools have to learn all those ways (& probably don't learn them all in one go - so we end up with different tools implementing subsets of all possible lookup rules, which is more confusing/problematic for users). https://github.com/llvm/llvm-project/pull/81067 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits