[PATCH] D79447: [Debug][CodeView] Emit fully qualified names for globals
Alexandre Ganea via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 6 05:52:45 PDT 2020
aganea marked an inline comment as done.
aganea added a comment.
Thanks!
I have a backlog of issues I'm noting along the way, I will only fix them if they have an impact in regards to debugging in Visual Studio.
1. The list of namespaces, ie.`S_NAMESPACE` isn't emitted in the first module.
2. `extern int A;` doesn't emit anything in the debug stream (of a .OBJ). MSVC emits `S_GDATA32`, but maybe this doesn't matter as it will be emitted probably by the TU that defines it.
3. `S_OBJNAME` is not emitted (see D43002 <https://reviews.llvm.org/D43002>, I will get back to this soon).
4. `LF_BUILDINFO` does not contain the full repro for rebuilding the .OBJ. I will fix this soon as well, this is blocking us.
5. `LF_NESTTYPE` emits empty names for inner types (at least not a unnamed enum).
6. Negative enumerations are emitted as U64, not signed. I need to check if this has an impact in the VS debugger.
7. `S_UDT` isn't emitted for a global enum.
================
Comment at: llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp:3125-3126
} else {
// FIXME: Currently this only emits the global variables in the IR metadata.
// This should also emit enums and static data members.
const DIExpression *DIE = CVGV.GVInfo.get<const DIExpression *>();
----------------
akhuang wrote:
> rnk wrote:
> > @akhuang, can we remove this FIXME? I think we addressed this simply by changing clang to emit this metadata.
> Yep- thanks for catching that!
Can I leave the comment for 'enum'? There are still a few things missing in the debug stream, in regards to enums (see other comment).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D79447/new/
https://reviews.llvm.org/D79447
More information about the llvm-commits
mailing list