Yea, I think something like this would actually make a useful llvm utility. Call it llvm-core or something, and it links against the library LLVMCoreFile. We could move all the code for consuming and producing Windows minidumps and Unix / Mach-O corefiles from LLDB down into LLVMCoreFile, write a library like llvm-core that can manipulate or inspect them, then have LLDB use it. Kill 2 birds with one stone that way IMO.
On Wed, Jun 13, 2018 at 2:56 PM Jason Molenda <jmole...@apple.com> wrote: > fwiw I had to prototype a new LC_NOTE load command a year ago in Mach-O > core files, to specify where the kernel binary was located. I wrote a > utility to add the data to an existing corefile - both load command and > payload - and it was only about five hundred lines of C++. I didn't link > against anything but libc, it's such a simple task I didn't sweat trying > to find an object-file-reader/writer library. ELF may be more complicated > though. > > > On Jun 13, 2018, at 2:51 PM, Zachary Turner via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > > > > What about the case where you already have a Unix core file and you > aren't in a debugger but just want to convert it? It seems like we could > have a standalone utility that did that (one could imagine doing the > reverse too). I'm wondering if it wouldn't be possible to do this as a > library or something that didn't have any dependencies on LLDB, that way a > standalone tool could link against this library, and so could LLDB. I > think this would improve its usefulness quite a bit. > > > > On Wed, Jun 13, 2018 at 2:42 PM Greg Clayton <clayb...@gmail.com> wrote: > > The goal is to take a live process (regular process just stopped, or a > core file) and run "save_minidump ..." as a command and export a minidump > file that can be sent elsewhere. Unix core files are too large to always > send and they are less useful if they are not examined in the machine that > they were produced on. So LLDB gives us the connection to the live process, > and we can then create a minidump file. I am going to create a python > module that can do this for us. > > > > Greg > > > > > >> On Jun 13, 2018, at 2:29 PM, Zachary Turner via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > >> > >> Also, if the goal is to have this upstream somewhere, it would be nice > to have a tool this be a standalone tool. This seems like something that > you shouldn't be required to start up a debugger to do, and probably > doesn't have many (or any for that matters) on the rest of LLDB. > >> > >> On Wed, Jun 13, 2018 at 1:58 PM Leonard Mosescu <mose...@google.com> > wrote: > >> That being said, it's not exactly trivial to produce a good minidump. > Crashpad has a native & cross-platform minidump writer, that's what I'd > start with. > >> > >> Addendum: I realized after sending the email that if the goal is to > convert core files -> LLDB -> minidump a lot of the complexity found in > Crashpad can be avoided, so perhaps writing an LLDB minidump writer from > scratch would not be too bad. > >> > >> On Wed, Jun 13, 2018 at 1:50 PM, Leonard Mosescu <mose...@google.com> > wrote: > >> The minidump format is more or less documented in MSDN. > >> > >> That being said, it's not exactly trivial to produce a good minidump. > Crashpad has a native & cross-platform minidump writer, that's what I'd > start with. > >> > >> On Wed, Jun 13, 2018 at 1:38 PM, Adrian McCarthy via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > >> Zach's right. On Windows, lldb can produce a minidump, but it just > calls out to a Microsoft library to do so. We don't have any > platform-agnostic code for producing a minidump. > >> > >> I've also pinged another Googler who I know might be interested in > converting between minidumps and core files (the opposite direction) to see > if he has any additional info. I don't think he's on lldb-dev, though, so > I'll act as a relay if necessary. > >> > >> On Wed, Jun 13, 2018 at 12:07 PM, Zachary Turner via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > >> We can’t produce them, but you should check out the source code of > google breakpad / crashpad which can. > >> > >> That said it’s a pretty simple format, there may be enough in our > consumer code that should allow you to produce them > >> > >> > >> _______________________________________________ > >> lldb-dev mailing list > >> lldb-dev@lists.llvm.org > >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > >> > >> > >> > >> _______________________________________________ > >> lldb-dev mailing list > >> lldb-dev@lists.llvm.org > >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > >> > >> > >> > >> _______________________________________________ > >> lldb-dev mailing list > >> lldb-dev@lists.llvm.org > >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > > _______________________________________________ > > lldb-dev mailing list > > lldb-dev@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > >
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev