[lldb-dev] reply: reply: lldb debug jit-compiled code with llvm on windows

Oleksiy Vyalov via lldb-dev lldb-dev at lists.llvm.org
Wed Dec 2 18:16:48 PST 2015


Could you re-build lldb with http://reviews.llvm.org/D15172 and try to hit
a breakpoint in jit code?

I'm using following setup to compile and run JIT code:
./build_release/bin/clang -c -O0 -g -emit-llvm ./jit_test.cpp
./build_release/bin/lli -debugger-tune=lldb -jit-kind=mcjit
~/projects/lldb/test/jit_test.bc

On Mon, Nov 30, 2015 at 3:47 AM, Tamas Berghammer via lldb-dev <
lldb-dev at lists.llvm.org> wrote:

>
>
> On Mon, Nov 30, 2015 at 10:18 AM haifeng_q <haifeng_q at foxmail.com> wrote:
>
>> Question 1:
>> On the windows, I use the code implements a function (see
>> debug_target.cpp) of JIT (see debug_target_process.cpp), but when
>> generating debug information, no production .symtab section for information
>> that leads LLDB get JIT debugging information .symtab failure , and then
>> set a breakpoint to fail.
>>  LLDB command: lldb_result.txt
>>  JIT compilation results: debug_target.ll
>>
>>  Question 2:
>>  How JIT debugging supported on Linux?
>>
>
> I theory when a new function is JIT-ed then __jit_debug_register_code
> function is called where LLDB have a breakpoint set. When that breakpoint
> is hit then LLDB reads the JIT-ed elf file based on the information in __it_debug_descriptor
> and processes all debug info in it.
>
> In practice when I last tried JIT debugging with lldb and lli (few weeks
> ago) it get the notification for the new JIT-ed elf file but it processed
> only the eh_frame from it even though symtab and full debug info was also
> provided. Most likely there is some issue around the JIT breakpoint
> handling or around the elf file parsing code in LLDB what needs
> some investigation.
>
>>
>> thanks!
>>
>> ------------------ The original message ------------------
>> *From:* "Zachary Turner";<zturner at google.com>;
>> *Data:* 2015年11月21日 AM 0:10
>> *Receive:* "Tamas Berghammer"<tberghammer at google.com>; " "<
>> haifeng_q at foxmail.com>; "lldb-dev"<lldb-dev at lists.llvm.org>;
>> *Title:* Re: [lldb-dev] reply: lldb debug jit-compiled code with llvm on
>> windows
>>
>> Can you also try clang-cl and see if it works?
>>
>> On Fri, Nov 20, 2015 at 3:02 AM Tamas Berghammer via lldb-dev <
>> lldb-dev at lists.llvm.org> wrote:
>>
>>> I don't know how JIT debugging should work on WIndows with MSVC but I
>>> don't think LLDB support it in any way. What I wrote should be true on
>>> Linux (and on some related) systems. You might be able to get the same
>>> results on Windows if you use lli (LLVM based JIT runner) but I have no
>>> knowledge if it will work or not.
>>>
>>> On Fri, Nov 20, 2015 at 8:56 AM haifeng_q <haifeng_q at foxmail.com> wrote:
>>>
>>>> My analysis of the code, the reasons are:
>>>>
>>>> Since the debugging process is MSVC compiler, there is no DWARF debugging
>>>> information. So lldb get __jit_debug_register_code and
>>>> __it_debug_descriptor symbol debugging process fails, and
>>>> __jit_debug_register_code not support MSVC.
>>>> I do not know whether correct?
>>>>
>>>> ------------------ original message------------------
>>>> *From:*"Tamas Berghammer";tberghammer at google.com;
>>>> Date*:*2015年11月19日 PM 8:37
>>>> *receive:* " "<haifeng_q at foxmail.com>; "lldb-dev"<
>>>> lldb-dev at lists.llvm.org>;
>>>> *Subject:* Re: [lldb-dev] lldb debug jit-compiled code with llvm on
>>>> windows
>>>>
>>>> In theory you don't have to do anything special to debug some JIT-ed
>>>> code as everything should just work (based on the gdb jit interface). In
>>>> practice I tried it out a few days ago and it wasn't working at all even in
>>>> the case when the application is launched under LLDB (not with attach).
>>>> LLDB was understanding the eh_frame for the JIT-ed code but didn't found
>>>> the debug info for unknown reason. We should investigate it and try to fix
>>>> it sometime. We (lldb for android developers) plan to do it sometime but if
>>>> you are interested in it then please feel free to take a look and let us
>>>> know if you have any question.
>>>>
>>>> Tamas
>>>>
>>>> On Thu, Nov 19, 2015 at 8:40 AM haifeng_q via lldb-dev <
>>>> lldb-dev at lists.llvm.org> wrote:
>>>>
>>>>> hi,
>>>>> process A generate function Func1 code with llvm jit compiler, and calls
>>>>> Func1. modeled on "Kaleidoscope: Adding Debug Information" add debug
>>>>> information. how to use LLDB to attach process A to debug this
>>>>> function, add a breakpoint in the function?
>>>>>
>>>>> thanks!
>>>>> _______________________________________________
>>>>> lldb-dev mailing list
>>>>> lldb-dev at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>>>>
>>>> _______________________________________________
>>> lldb-dev mailing list
>>> lldb-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>>
>>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>


-- 
Oleksiy Vyalov | Software Engineer | ovyalov at google.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20151202/c89852e7/attachment.html>


More information about the lldb-dev mailing list