probinson added a comment. In D62634#1527575 <https://reviews.llvm.org/D62634#1527575>, @dblaikie wrote:
> This is intentional behavior in clang (controllable under the > -f[no-]split-dwarf-inlining flag, and modified by the > -f[no-]debug-info-for-profiling flag). > > This extra debug info is used for online symbolication (in the absence of > .dwo files) - such as for the sanitizers (accurate symbolication is necessary > for correctness in msan, due to msan's necessary use of blacklisting to avoid > certain false positives) and some forms of sample based profiling collection. > > In the default mode, clang includes, as you noted, just the subprograms that > have inlined subroutines in them in this split-dwarf-inlining data. > In -fdebug-info-for-profiling all subprograms are described in the skeleton > CU with some minimal attributes (they don't need parameters, local > variables/scopes, etc) necessary to do certain profile things I don't know > lots about. I think we have to tolerate the msan part. However, the profile feedback workflow could (should) surely be taught to read a .dwo file. The point of -fdebug-info-for-profiling was so you don't have to emit limited/full debug info in the .o file just to make profiling work; but if you're using split DWARF then you're doing limited/full anyway, and the feedback loop happens in the context of a build environment so the .dwo can be asserted to be available. So in split DWARF mode, we should not be emitting debug-info-for-profiling into the skeleton. > Chances are it's probably best for a debugger to ignore these entries. This stuff is going to show up in the wild, so yeah. You know you're looking at a skeleton, so don't bother looking at any children. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62634/new/ https://reviews.llvm.org/D62634 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits