[Lldb-commits] [PATCH] D49202: Restructure the minidump loading path and add early & explicit consistency checks

Leonard Mosescu via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Jul 16 10:16:54 PDT 2018


lemo added subscribers: amccarth, bgianfo, labath, penryu.
lemo added a comment.

The problem is not returning an error from Minidump::Create() - if that was
the case this could easily be improved indeed. The two-phase initialization
is a consequence of the LLDB plugin lookup:

1. Target::CreateProcess() calls Process::FindPlugin()
2. ProcessMinidump::CreateInstance() then has to inspect the core file to

see if it's a minidump
2b. ... if it is a minidump, we need to create a ProcessMinidump (which
calls MinidumpParser::Create())

3. once the plugin is selected, Process::LoadCore() is finally called and

this the earliest we can do minidump-specific error checking

Note that at step 2b. we don't have a way to propagate the error since
we're just doing the plugin lookup (the most we can pass on the lookup to
the rest of the plugins). We can't easily defer the
MinidumpParser::Create() as step 2b either since that only morphs into a
different kind of two-stage initialization (having a ProcessMinidump w/o a
parser).

I agree that it would be nicer with a one step initialization but overall
changing the LLDB plugin lookup is too intrusive for the relatively small
benefit. If you have any suggestions I'd love to hear them.


Repository:
  rL LLVM

https://reviews.llvm.org/D49202





More information about the lldb-commits mailing list