I doubt they would go away if there's an actual user of them, and if they did go away and someone who needed them came along, I expect they would be able to put them back, provided they were committed to maintaining it and turning it into something that was generally useful outside the context of a narrowly defined set of needs.<br><br>So my suggestion would be to try to make the loadable plugin system work for you and extending / improving it wherever you run into limitations. <br><br>Feel free to hack around and propose patches to this effect. <br><br>And for what it's worth, I also have some interest in seeing the loadable plugin system developed further as i have some ideas of how I would like to use it in the future, although this is still a ways out for me.<br><div class="gmail_quote">On Sat, Feb 21, 2015 at 10:49 AM Mike McLaughlin <<a href="mailto:mikem@microsoft.com">mikem@microsoft.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Thanks for your response. I found the lldb-3.5.-dev package which contains all the public API headers and libraries necessary to build my plugin independent of
a full lldb build. I really hope that loadable lldb plugins do not go away in the future.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">My plugin (sosplugin) is fairly simple. It registers the “sos” command and when the command is executed the “libsos.so” library is loaded and second argument
on the command line is used to find a symbol/entry point in the sos library that matches. The “libsos.so” is some of the Windows/Windbg sos debugger extension ported to Linux. When the command entry point is called in libsos.so the rest of the command line
and a simple interface is passed that implements some of the services the extension needs from the hosting debugger.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">My “soscommand1” branch in the
<a href="https://github.com/mikem8361/coreclr.git" target="_blank">https://github.com/mikem8361/coreclr.git</a> repository contains the current versions of these modules under src/ToolBox/SOS/lldbplugin and src/ToolBox/SOS/strike.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">mikem<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Zachary Turner [mailto:<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>]
<br>
<b>Sent:</b> Friday, February 20, 2015 3:57 PM<br>
<b>To:</b> Mike McLaughlin; <a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a>; Enrico Granata</span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><br>
<b>Subject:</b> Re: [lldb-dev] Building a command plugin for lldb<u></u><u></u></span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi Mike,<u></u><u></u></p></div></div></div><div lang="EN-US" link="blue" vlink="purple"><div><div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Check out this thread from last year:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lists.cs.uiuc.edu/pipermail/lldb-dev/2014-August/005049.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/lldb-dev/2014-August/005049.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">The long and short is that this is actually a dead codepath. Enrico (CC'ed on this thread now) was the original author and had some original plans for it, but it ended up not finding usage and now as far as anyone knows it's totally unused.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Don't let that discourage you though. It looks like the infrastructure is there, it just needs some love to get it into a state that it meets your needs. <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">As for the API stuff, I don't see a way around building all of LLDB to get this. That public API is going to need to call into the private API somehow, and it does that by statically linking against it. So you will need to build all of
LLDB. Can you elaborate on how you envisioned using the API? It might be that there is some subset of the API that you're interested in that doesn't need to depend on all the rest of LLDB. Knowing what that subset is would be a good starting point for further
discussion though.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Fri Feb 20 2015 at 3:13:12 PM Mike McLaughlin <<a href="mailto:mikem@microsoft.com" target="_blank">mikem@microsoft.com</a>> wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">I have a couple of questions about lldb:<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">1) I building a lldb command plugin for dotnet/coreclr (sos for lldb) and it currently depends on the lldb source (API h files) and the lldb build. Is there a package that includes
just the public h and library files necessary to build a lldb plugin? I’ve heard there is one for llvm. Or am I stuck enlisting and building lldb to build my plugin?<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">2) Is there any way to get the plugin’s load path? I want to load another module dynamically in the same directory as my lldb plugin. I’m still learning about linux and lldb but
it doesn’t look like there is a lldb api or the equivalent of Windows the hmodule passed to the DllMain.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">mikem<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><u></u><u></u></p>
</blockquote>
</div>
</div>
</div></div></div></blockquote></div>