[compiler-rt] [compiler-rt] Fix frame numbering for unparsable frames. (PR #148278)

David Justo via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 21 10:23:27 PDT 2025


================
@@ -507,20 +507,29 @@ def symbolize_address(self, addr, binary, offset, arch):
         assert result
         return result
 
-    def get_symbolized_lines(self, symbolized_lines, inc_frame_counter=True):
+    def get_symbolized_lines(self, symbolized_lines):
         if not symbolized_lines:
-            if inc_frame_counter:
-                self.frame_no += 1
-            return [self.current_line]
-        else:
-            assert inc_frame_counter
-            result = []
-            for symbolized_frame in symbolized_lines:
-                result.append(
-                    "    #%s %s" % (str(self.frame_no), symbolized_frame.rstrip())
+            # If it is an unparsable frame, but contains a frame counter and address
+            # replace the frame counter so the stack is still consistent.
----------------
davidmrdavid wrote:

question: something here is a bit strange - it seems to me that we're fixing the frame counter _after_ the frame string has been generated, so it feels like there would be an earlier point in the process where the frame counter is not being incremented. Do we know where that is, and why we can't update it _there_?

https://github.com/llvm/llvm-project/pull/148278


More information about the llvm-commits mailing list