[Lldb-commits] [PATCH] D5871: Add an OperatingSystem plugin to support goroutines
Tamas Berghammer via lldb-commits
lldb-commits at lists.llvm.org
Tue Sep 15 09:43:30 PDT 2015
tberghammer added a subscriber: tberghammer.
tberghammer requested changes to this revision.
tberghammer added a reviewer: tberghammer.
tberghammer added a comment.
This revision now requires changes to proceed.
If I understand this change correctly then OperatingSystemGo::CreateInstance will be called every time we launch or attach a new process. This function then calls OperatingSystemGo::FindGlobal what will call into ModuleList::FindGlobalVariables. The problem is that it will require a full dwarf info parsing for all module what is very slow and we would like to avoid it at almost all cost. The rest of the plugins mentioned by Jim (JIT, ASAN) are doing only a symbol name lookup based on a fixed symbol what is significantly faster because it requires only the parsing of the symtab. Please try to find a way to detect when you have to enable the go plugin based on symtab only or based on the ELF headers what can be parsed even faster (they contain a language attribute what should be sufficient (if it is filled in) on Linux/OSX, but I don't know about Windows).
Note: If CreateInstace isn't called at launch/attach time when we are working with a non-go inferior, then feel free to ignore my comment.
More information about the lldb-commits