[lldb-dev] [RFC] OS awareness in LLDB

Alexander Polyakov via lldb-dev lldb-dev at lists.llvm.org
Tue Apr 9 10:25:39 PDT 2019

Gentle ping.

On Wed, Apr 3, 2019 at 8:05 PM Alexander Polyakov <polyakov.alx at gmail.com>

> Hi lldb-dev,
> Currently I'm working on an OS plug-in for multiple operating systems and
> architectures, during my work, I noted a few moments I want to discuss with
> the community.
> 1) Adding RegisterContext to SB API:
>     if you want your OS plug-in to support multiple architectures you need
> to implement
>     things like *get_register_info, get_register_data...* for each
> architecture.
>     In my mind, we could do that using RegisterContext, for example:
>     *get_register_info* could just call
> RegisterContext::GetRegisterContextAtIndex(idx), the number
>     of registers could be obtained from
> RegisterContext::GetRegisterCount();
>     *get_register_data *could return SBRegisterContext instead of just
> bytes, then the process of
>     fetching the register values might look as: for each register
>     SBRegisterContext::WriteRegister(reg_info, reg_value).
>     Please correct me if I'm missing something.
> 2) New lldb-mi command: -info-os
>     the gdb-mi documentation defines this command and there is a problem
> with it. To fully
>     implement it, we should be able to get CPU ID a thread is running on,
> but lldb
>     does not have an abstraction for CPU ID at all, so it becomes unreal
> at least for now.
>     I'm going to partly implement this command for Zephyr (e.g. return
> some value to indicate
>     that the CPU ID is undefined) and I want to know if the community is
> interested in implementing
>     that command inside lldb-mi (at least in part).
> --
> Alexander

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20190409/45a64c21/attachment.html>

More information about the lldb-dev mailing list