JosephTremoulet added a comment.

I'm trying to fix an issue where opening a minidump created by breakpad in lldb 
just hangs, but if I use breakpad's minidump-2-core on that same dump then 
opening the core dump works fine.  From debugging the two cases I can see that 
the critical logic that ProcessElfCore has which ProcessMinidump lacks is here 
<https://github.com/llvm/llvm-project/blob/f1a5a93157b4658c7961b57960e407001dae6965/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp#L227-L229>,
 and the code in this patch is my attempt to replicate that.

I'd love some help on how to create an appropriate test for this.  From looking 
at existing tests, I gather it would make sense to add a test to 
lldb/lit/Minidump or 
packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new (aside:  
what's the difference?  is one preferred?) that has a yaml-ized minidump, the 
test would try to open the dump and make sure it didn't hang.  I'm running into 
issues when I try to create that test, and I've put details in a gist 
<https://gist.github.com/JosephTremoulet/2689c5ed21d7be5543cfcb70d548e0bc>.  
There's a program 
<https://gist.github.com/JosephTremoulet/2689c5ed21d7be5543cfcb70d548e0bc#file-test-cpp>
 there which launches another program 
<https://gist.github.com/JosephTremoulet/2689c5ed21d7be5543cfcb70d548e0bc#file-busyloop-cpp>
 and then uses breakpad to capture a minidump of the child process (another 
aside:  it looks like the existing tests all dump their own process, I think 
that dumping another process is the reason I'm running into this but others 
haven't).  If I load that minidump without the fixes in this patch, lldb hangs. 
 If I load that minidump with the fixes in this patch, lldb reads it and can 
show an accurate backtrace, I've put a log 
<https://gist.github.com/JosephTremoulet/2689c5ed21d7be5543cfcb70d548e0bc#file-loading_dump-txt>
 of that in the gist.  But if I then run that minidump through obj-2-yaml and 
yaml-2-obj, if I load the resulting minidump, while it doesn't hang, it can't 
show an accurate backtrace.  I've also put up a log 
<https://gist.github.com/JosephTremoulet/2689c5ed21d7be5543cfcb70d548e0bc#file-loading_dump_after_yaml_roundtrip-txt>
 of that.

I'd imagine my next step would be to look into what information is getting 
dropped when I try to do the round-trip through obj-2-yaml and yaml-2-obj, then 
update those utilities to preserve more, so that I can come back and add this 
test with a yaml input... does that sound right, or have I gone off track 
somewhere?

Thanks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68096/new/

https://reviews.llvm.org/D68096



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to