[PATCH] D88988: [llvm-symbolizer] Add inline stack traces for Windows.

Adrian McCarthy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 8 16:20:52 PDT 2020


amccarth added a comment.

This looks pretty good.

- Are the sources for the binary test inputs around somewhere so they could be recreated if necessary someday?
- The test turns a small stack into file+line numbers.  Is that sufficient or should there also be one to get function name+offsets?
- Most of the formatting nits listed by lint are legit and should be fixed before committing.

I'll be curious to hear what you figure out about the ASAN tests.

[It's so weird how methods likes getSymbolById return `std::unique_ptr`s.  That's not a bug in this patch, just an unintuitive interface design that we probably inherited from the original DIA wrappers.  Every time I see it, though, I end up chasing down calls to make sure it's correct.]



================
Comment at: llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h:133
+  IMap AddrToModuleIndex;
+  void parseSectionContribs();
 };
----------------
I don't see anything explicit in LLVM's style guidelines, but I think it's common to segregate the data members and methods whenever possible.  So perhaps the `parseSectionContribes()` should be moved up.


================
Comment at: llvm/lib/DebugInfo/PDB/Native/NativeFunctionSymbol.cpp:59
+
+static bool inlineSiteContainsAddress(InlineSiteSym &IS,
+                                      uint32_t OffsetInFunc) {
----------------
akhuang wrote:
> I think this sometimes returns true incorrectly, seems like it happens when there are multiple ChangeCodeLength annotations. Maybe I'm interpreting those incorrectly? 
I don't know much about these annotations.  Can these be nested?  For example if `foo` runs from f0 to f1 and the annotations also describe another subrange inside of f0..f1, then I would think `Found` would have to be a counter rather than a bool.  If it's 0, you're not inside any range.  If it's 2, you're inside two nested ranges.

If they don't nest, then I don't see a problem.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88988



More information about the llvm-commits mailing list