Greg should comment on way you're populating the Memory threads, etc.  That was 
his code (used mostly by the OS X kernel folks to turn kernel thread 
activations into lldb threads...)  At present you can only enable/disable the 
OS plugins when the target is created, but I haven't looked into how hard that 
would be to change.

But anyway most of the extensions (like the JIT loader and the ASAN plugin) do 
their initialization work by inserting some callback in:

Process::ModulesDidLoad

which gets called every time a new shared library is loaded.  You can just 
check the module list you were passed and if it contains the symbol you are 
looking for, run your Init method.  At some point we should create some formal 
process where plugins can register "new module loaded" handlers rather than 
just jamming them in here by hand.  If you are feeling ambitious, have a go!  
Otherwise, just do what everybody else does...

Jim

> On Oct 20, 2014, at 12:32 PM, Ryan Brown <[email protected]> wrote:
> 
> This is a first version of an os plugin for go supporting the 1.4 go runtime.
> I'm not sure what the best way to enable/disable this plugin is. I tried 
> checking for the go runtime symbols when the plugin is created, but it 
> appears the symbols aren't loaded until later.
> It would also be desirable to enable/disable the os plugin threads after the 
> process has started, but I'm not sure how to implement that.
> 
> http://reviews.llvm.org/D5871
> 
> Files:
>  lldb.xcodeproj/project.pbxproj
>  source/Plugins/OperatingSystem/Go/OperatingSystemGo.cpp
>  source/Plugins/OperatingSystem/Go/OperatingSystemGo.h
>  source/lldb.cpp
> <D5871.15150.patch>_______________________________________________
> lldb-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits


_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to