DavidSpickett added inline comments.
================ 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())); + ---------------- aprantl wrote: > DavidSpickett wrote: > > aprantl wrote: > > > bulbazord wrote: > > > > 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`. > > > Are we saving a lot of code by going through the clang typesystem here, > > > or would walking the bits and formatting the directly be roughly the same > > > amount of code? > > Funny you should mention that. > > > > I was initially doing that, but in the RFC it was suggested I use the > > existing printers for C types > > (https://discourse.llvm.org/t/rfc-showing-register-fields-in-lldb/64676/2). > > There's also a hint that this would make assigning to specific fields more > > easy (though that is a very far off goal). > > > > This is what the first version looked like: > > ``` > > (lldb) register read cpsr > > cpsr = 0x60001000 > > | N | Z | C | V | TCO | DIT | UAO | PAN | SS | IL | SSBS | BTYPE | D | A | > > I | F | nRW | EL | SP | > > | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | > > 0 | 0 | 0 | 0 | 0 | > > ``` > > Of course it would be refined based on line length and field size etc etc. > > A lot of the things the type printers already do, which is why using them > > looked like it would save some effort. > > > > Some of that extra formatting code will get written anyway because I want > > to eventually add a register command that will show you the register > > layout. So table formatting is needed either way. That would produce > > something like: > > ``` > > (lldb) register info cpsr > > | 31 | 30 | ... > > | N | Z | ... > > ``` > > > > So overall no there's nothing preventing me from walking the bits. Assuming > > you already have code to format text tables nicely, it would be about the > > same amount of code. > > > > I need to check if we have any generic table formatting code, or could > > extract some from somewhere. > Sorry I wasn't aware of the history :-) Do you have an idea of how much work it would be to make TypeSystem do the same things TypeSystemClang does? Maybe more to the point, would I be trying to make TypeSystem do something it just isn't designed to do. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145580/new/ https://reviews.llvm.org/D145580 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
