[lldb-dev] [LLVMdev] PDB support in LLVM

João Matos ripzonetriton at gmail.com
Tue Jul 21 10:01:42 PDT 2015


If you're still looking for it, we at Xamarin have recently created some C#
bindings for LLDB. We also built a proof of concept native debugger addin
for Xamarin Studio.

It's all open source, the bindings themselves are available here:
https://github.com/tritao/LLDBSharp

Let me know if you find them useful for need some help in generating the
bindings for other ABIs (Windows).


On Tue, Apr 7, 2015 at 6:19 PM, Colin Riley <colin at codeplay.com> wrote:

> I think that's what I used. Hence why I want lldb C# bindings! But yeah.
> Horridly underdocumented.
> ------------------------------
> From: Zachary Turner <zturner at google.com>
> Sent: ‎07/‎04/‎2015 18:10
> To: Colin Riley <colin at codeplay.com>; lldb-dev at cs.uiuc.edu
> Subject: Re: [lldb-dev] [LLVMdev] PDB support in LLVM
>
> Btw the python tools project doesn't use Dbgeng extensibility model, it's
> a newer richer extensibility framework that is even less documented (most
> people probably wouldn't even know it exists) but much more powerful. And
> it's all in managed code, so you get the c# stuff for free.
>
> But still, 4-5 weeks seems very aggressive
> On Tue, Apr 7, 2015 at 9:48 AM Colin Riley <colin at codeplay.com> wrote:
>
>>  You could try extending the codeview and then relying on the ms linker
>> to emit a pdb from it (last time I checked it converts on the fly - this
>> may have changed recently, and what it converts may not be fully featured).
>>
>> The Debug Engine extensibility for visual studio is, as Zach says, not
>> well documented at all. Despite that, in the past I have had LLDB chatting
>> in a limited way to visual studio. It was incredibly messy, and the way I
>> chose to do it was go from Visual Studio -> c# -> c++/CLI -> C++ lldb api.
>> Don't do it that way if you attempt it: Create lldb C# bindings instead and
>> go that direction. I've been looking at that lately but it's a side project
>> so cant be relied on if you need it quickly.
>>
>> As for the time frame, 4-5 weeks isn't going to get far given the lack of
>> documentation. The debug engine samples don't go far enough in terms of
>> requiring a native C++ environment.
>>
>> Colin
>>
>>
>> On 07/04/2015 17:25, Zachary Turner wrote:
>>
>> It sounds like if you have a time frame of 4-5 weeks, you've got a tall
>> order cut out for yourself.  I don't want to say impossible, but... that's
>> pretty rough.
>>
>> I think you've got two options:
>> 1) Try to figure out how to emit PDB.  The format is undocumented, so
>> you're kind of on your own here.
>> 2) Try to figure out how to get Visual Studio to understand DWARF.
>> Visual Studio has a reasonably rich extensibility model which is also not
>> very well documented, so you're probably on your own here as well.  You may
>> want to have a look at PythonTools for Visual Studio
>> <https://github.com/Microsoft/PTVS>.  It's entirely open source and adds
>> Python debugging to Visual Studio.  Obviously you don't need to be able to
>> debug Python, but it's the best source of documentation I know of for
>> extending Visual Studio in this kind of way so maybe it will help.  If you
>> end up doing this, it would be great if you could try to upstream it back
>> to LLDB.  Visual Studio integration with LLDB would be nice to have.
>>
>> On Mon, Apr 6, 2015 at 5:02 PM Rohan Bajaj <rohanbajaj84 at gmail.com>
>> wrote:
>>
>>>  Moving to lldb-dev per suggestion.
>>>
>>>  Using Visual Studio is only criteria for us. It could be DWARF or PDB.
>>>
>>>  But I need to implement this soon (4-5 weeks from now). What do you
>>> recommend?
>>>
>>>  Zachary do you also suggest using LLDB on Windows?
>>>
>>>
>>> On Mon, Apr 6, 2015 at 4:35 PM, Zachary Turner <zturner at google.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Apr 6, 2015 at 4:16 PM Chandler Carruth <chandlerc at google.com>
>>>> wrote:
>>>>
>>>>>  On Mon, Apr 6, 2015 at 3:46 PM Rohan Bajaj <rohanbajaj84 at gmail.com>
>>>>> wrote:
>>>>>
>>>>>>  Is making PDB files for corresponding IR supported in LLVM latest
>>>>>> version?
>>>>>>
>>>>>
>>>>>    Not today.
>>>>>
>>>>>
>>>>>>
>>>>>>  After some searching I see llvm-pdbdump, but I want to annotate the
>>>>>> IR with debug information so that when I write bitcode it has pdb
>>>>>> information.
>>>>>>
>>>>>>  I've heard of CodeView, but it seems to be only for line
>>>>>> information. I want variable values also.
>>>>>>
>>>>>>  I would be ok to use DWARF if Visual Studio could understand it
>>>>>> using LLDB but I don't know how to do that or if it is support.
>>>>>>
>>>>>
>>>>>    Zach (CC-ed) and others are actively working on making LLDB work
>>>>> well on Windows, including reading DWARF debug information on Windows and
>>>>> potentially integration with Visual Studio (although I think that is
>>>>> further away at the moment). However, further discussion might be better on
>>>>> the LLDB mailing lists.
>>>>>
>>>>
>>>>  It's worth pointing out that CodeView is **not** only for line
>>>> information. It's for everything.  It's just that LLVM currently only
>>>> understands a subset of CodeView record types related to line information.
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> lldb-dev mailing listlldb-dev at cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>> --
>> - Colin Riley
>> Senior Director,
>> Parallel/Graphics Debugger Systems
>>
>>  _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
>


-- 
João Matos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150721/b344640d/attachment.html>


More information about the lldb-dev mailing list