labath added a comment.

Thanks for tracking this down, and for creating a nice test case. I think the 
implementation would be cleaner with a new argument, as per the inline comment.



================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h:113
 
-  size_t GetAttributes(DWARFAttributes &attributes, uint32_t depth = 0) const;
+  size_t GetAttributes(DWARFAttributes &attributes, int32_t depth = 0) const;
 
----------------
Using -1 to prevent recursion is pretty unobvious. I think it would be better 
to add a `bool recurse = true` argument between `attributes` and `depth`. In 
fact, I'd consider even deleting the `depth` argument -- it's an internal 
detail that noone except `DWARFDebugInfoEntry` should be using and the single 
usage there can be easily changed to 
`spec_die.GetDIE()->GetAttributes(spec_die.GetUnit(), attributes, recurse, 
depth+1)`


================
Comment at: 
lldb/test/Shell/SymbolFile/DWARF/DW_TAG_GNU_call_site-DW_AT_low_pc.s:14
+# RUN: %clang_host -o %t %s
+# RUN: %lldb %t -o 'b 6' -o r -o 'p p' -o exit | FileCheck %s
+
----------------
Maybe place an int3 at the place where you want this to stop? Then you can 
delete all of the line table directives and the break location will be more 
obvious...


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81334/new/

https://reviews.llvm.org/D81334



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to