Makes sense about not writing the core file to disk. 

Is there a way you can detect this "core" mode where we don't have to waitpid? 
Seems like that www.sourceware.org message had ideas on how to detect this case?

Greg

> On Nov 3, 2015, at 4:36 PM, Mark Chandler <mchand...@blizzard.com> wrote:
> 
> Not able to do that as the servers have no hard drives (use ram disk and net 
> boot) and the tool is trying to avoid a core storm that takes down the 
> network file share. I found out what is causing it to hang, there is a call 
> to waitpid in NativeLinuxProcess.cpp that waits forever. As the process is 
> already stopped, I disabled that and it looks to be working
> 
> Mark Chandler
> Battle.Net Engineering Systems | Blizzard Entertainment
> (P) 949-955-1380 x15353
> 
> -----Original Message-----
> From: Greg Clayton [mailto:gclay...@apple.com] 
> Sent: Tuesday, November 03, 2015 4:34 PM
> To: Mark Chandler <mchand...@blizzard.com>
> Cc: lldb-dev@lists.llvm.org
> Subject: Re: [lldb-dev] Attaching to a stopped (cored) process hangs 
> lldb-server
> 
> One different approach is to have your tool write all STDIN to a file (the 
> core file comes into the tool as STDIN bytes) and then hand LLDB the core 
> file and do any needed backtracing and data gathering from the core file 
> instead of actually attaching to the process for real. All executable and 
> shared library object files (ELF files) from the core file are still on disk 
> so you can get symbols and use the debug info, so LLDB should be able to load 
> all frames up and symbolicate up the crash location. It should be just as 
> good as having the process around without any bad side affects. Core files 
> are less useful if they must be archived and symbolicated later because the 
> executable files might not be around anymore since things like test suites 
> might produce binaries for testing and remove them after the test is run or 
> crashed.
> 
> What do you think about this approach?
> 
> Greg Clayton
> 
> 
>> On Nov 2, 2015, at 5:54 PM, Mark Chandler via lldb-dev 
>> <lldb-dev@lists.llvm.org> wrote:
>> 
>> So im trying to write a core handler program and use lldb to attach and dump 
>> important information about it. This works if a use my tool to attach to an 
>> existing one but I found that lldb-server will hang in a waitpid call if the 
>> kernel has invoked the tool after another process has cored.
>> 
>> Example:
>> ·         /proc/sys/kernel/core_pattern is set to |/opt/core_tool
>> ·         Run a.out and it segfaults
>> ·         Kernel invokes core_tool that uses lldb AttachToProcess and a.out 
>> is in state “S+”
>> ·         lldb-server hangs in 
>> source\Plugins\Process\Linux\NativeProcessLinux.cpp:867
>> ·         if I remove the waitpid it doesn’t hang but fails to attach
>> 
>> Looks like gdb had a similar problem as well: 
>> http://www.sourceware.org/ml/gdb-patches/2008-04/msg00224.html
>> Any ideas on how to fix this?
>> 
>> Mark Chandler
>> Battle.Net Engineering Systems | Blizzard Entertainment
>> (P) 949-955-1380 x15353
>> 
>> _______________________________________________
>> 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

Reply via email to