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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits