Browse Source

feat(stacktrace-link): Add source link to stack trace frame (#55407)

This PR adds dotnet's source link to the stack trace frame so that it may be used in the case a regular stack trace link cannot be retrieved.
Isabella Enriquez 1 year ago
parent
commit
7b71d11461

+ 5 - 0
src/sentry/interfaces/stacktrace.py

@@ -150,6 +150,7 @@ class Frame(Interface):
             "platform",
             "post_context",
             "pre_context",
+            "source_link",
             "symbol",
             "symbol_addr",
             "trust",
@@ -187,6 +188,7 @@ class Frame(Interface):
                 "lineno": self.lineno,
                 "colno": self.colno,
                 "lock": self.lock,
+                "source_link": self.source_link or None,
             }
         )
 
@@ -217,7 +219,9 @@ class Frame(Interface):
             "trust": self.trust,
             "errors": self.errors,
             "lock": self.lock,
+            "sourceLink": self.source_link,
         }
+
         if not is_public:
             data["vars"] = self.vars
 
@@ -279,6 +283,7 @@ class Frame(Interface):
             "trust": meta.get("trust"),
             "errors": meta.get("errors"),
             "lock": meta.get("lock"),
+            "sourceLink": meta.get("source_link"),
         }
 
     def is_url(self):

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_basic.pysnap

@@ -25,6 +25,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -54,6 +55,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 1 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_mechanism.pysnap

@@ -28,6 +28,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_mixed_frames.pysnap

@@ -25,6 +25,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -54,6 +55,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_only_app_frames.pysnap

@@ -25,6 +25,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -54,6 +55,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_only_system_frames.pysnap

@@ -25,6 +25,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -54,6 +55,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_raw_stacks.pysnap

@@ -24,6 +24,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -47,6 +48,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 1 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_symbols.pysnap

@@ -25,6 +25,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: Class.myfunc
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_exception/test_context_with_two_exceptions_having_mechanism.pysnap

@@ -30,6 +30,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -64,6 +65,7 @@ get_api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null

+ 2 - 0
tests/sentry/event_manager/interfaces/snapshots/test_threads/test_basics.pysnap

@@ -30,6 +30,7 @@ api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null
@@ -53,6 +54,7 @@ api_context:
         package: null
         platform: null
         rawFunction: null
+        sourceLink: null
         symbol: null
         symbolAddr: null
         trust: null