[Lldb-commits] [PATCH] D145580: [lldb] Show register fields using bitfield struct types
Alex Langford via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Mar 20 14:16:52 PDT 2023
bulbazord added a comment.
I'm supportive of this idea but I would like to find a way to do it without introducing dependencies on plugins in non-plugin code if possible.
================
Comment at: lldb/include/lldb/Core/DumpRegisterValue.h:12
+#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/lldb-enumerations.h"
----------------
JDevlieghere wrote:
> Core components (not just the Core libraries but basically everything that's not a plugin) shouldn't depend on plugins. There's still places in LLDB where this is the case but @bulbazord has been hard at work to clean those up. This would introduce a new one. Can we avoid this?
+1 Let's find a way to avoid this if possible. Perhaps we can use just `TypeSystem`?
================
Comment at: lldb/source/Commands/CommandObjectRegister.cpp:212-213
} else {
+ TypeSystemClangSP type_system =
+ ScratchTypeSystemClang::GetForTarget(m_exe_ctx.GetTargetRef());
+ assert(type_system);
----------------
Instead of being specific to clang, it would be better if we could use `Target::GetScratchTypeSystemForLanguage(eLanguageTypeC)` or something to this effect.
================
Comment at: lldb/source/Core/DumpRegisterValue.cpp:136-137
+ // See if we have made this type before and can reuse it.
+ CompilerType fields_type = ast->GetTypeForIdentifier<clang::CXXRecordDecl>(
+ ConstString(register_type_name.c_str()));
+
----------------
This seems highly specific to C++... Let's try to find another way to do this, ideally with `TypeSystem` instead of `TypeSystemClang` and `clang::CXXRecordDecl`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D145580/new/
https://reviews.llvm.org/D145580
More information about the lldb-commits
mailing list