Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion requirements-base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ sqlparse>=0.1.16,<0.2.0
statsd>=3.1.0,<3.2.0
strict-rfc3339>=0.7
structlog==16.1.0
symbolic>=5.4.0,<6.0.0
symbolic>=5.5.0,<6.0.0
toronado>=0.0.11,<0.1.0
ua-parser>=0.6.1,<0.8.0
# for bitbucket client
Expand Down
283 changes: 200 additions & 83 deletions src/sentry/models/debugfile.py

Large diffs are not rendered by default.

Large diffs are not rendered by default.

18 changes: 8 additions & 10 deletions src/sentry/tasks/assemble.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,17 @@ def assemble_dif(project_id, name, checksum, chunks, **kwargs):
indicate_success = True
delete_file = False

# Bump the reprocessing revision since the symbol has changed and
# might resolve processing issues. If the file was not created,
# someone else has created it and will bump the revision instead.
if created:
# Bump the reprocessing revision since the symbol has changed
# and might resolve processing issues. If the file was not
# created, someone else has created it and will bump the
# revision instead.
bump_reprocessing_revision(project)

# If we need to write a symcache we can use the
# `generate_symcache` method to attempt to write one.
# This way we can also capture down the error if we need
# to.
if created and dif.supports_symcache:
_, _, error = ProjectDebugFile.difcache.generate_symcache(
project, dif, temp_file)
# Try to generate caches from this DIF immediately. If this
# fails, we can capture the error and report it to the uploader.
# Also, we remove the file to prevent it from erroring again.
error = ProjectDebugFile.difcache.generate_caches(project, dif, temp_file.name)
if error is not None:
set_assemble_status(project, checksum, ChunkFileState.ERROR,
detail=error)
Expand Down
2 changes: 1 addition & 1 deletion src/sentry/tasks/symcache_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ def symcache_update(project_id, debug_ids, **kwargs):
except Project.DoesNotExist:
return

ProjectDebugFile.difcache.update_symcaches(project, debug_ids)
ProjectDebugFile.difcache.update_caches(project, debug_ids)
3 changes: 2 additions & 1 deletion src/sentry/testutils/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,8 @@ def create_dif_from_path(self, path, object_name=None, **kwargs):
if object_name is None:
object_name = os.path.basename(path)

file = self.create_file_from_path(path, name=object_name)
headers = {'Content-Type': 'application/x-mach-binary'}
file = self.create_file_from_path(path, name=object_name, headers=headers)
return self.create_dif_file(file=file, object_name=object_name, **kwargs)

def add_user_permission(self, user, permission):
Expand Down
12 changes: 7 additions & 5 deletions tests/sentry/lang/native/test_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from sentry.lang.native.symbolizer import Symbolizer
from sentry.models import Event, EventAttachment, File, ProjectDebugFile

from symbolic import parse_addr, Object, SymbolicError
from symbolic import parse_addr, SymbolicError, SymCache


class BasicResolvingIntegrationTest(TestCase):
Expand Down Expand Up @@ -1147,11 +1147,13 @@ def test_broken_conversion(self):
'dSYM/hello')
f.close()

original_make_symcache = Object.make_symcache
original_make_symcache = SymCache.from_object

def broken_make_symcache(self):
@classmethod
def broken_make_symcache(cls, obj):
raise SymbolicError('shit on fire')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏

Object.make_symcache = broken_make_symcache
SymCache.from_object = broken_make_symcache

try:
response = self.client.post(
url, {
Expand Down Expand Up @@ -1220,7 +1222,7 @@ def broken_make_symcache(self):
}
event.delete()
finally:
Object.make_symcache = original_make_symcache
SymCache.from_object = original_make_symcache

def test_debug_id_resolving(self):
file = File.objects.create(
Expand Down
Binary file added tests/sentry/models/fixtures/crash
Binary file not shown.
225 changes: 225 additions & 0 deletions tests/sentry/models/fixtures/v1.cficache
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
STACK CFI INIT 1730 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 1750 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 1880 2d .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 1881 .cfa: $rsp 16 +
STACK CFI INIT 1b50 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 1e40 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 2200 104 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 2201 .cfa: $rsp 16 +
STACK CFI 2203 .cfa: $rsp 24 +
STACK CFI 2205 .cfa: $rsp 32 +
STACK CFI 2207 .cfa: $rsp 40 +
STACK CFI 2209 .cfa: $rsp 48 +
STACK CFI 220a .cfa: $rsp 56 +
STACK CFI 220b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 23d0 c8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 23d2 .cfa: $rsp 16 +
STACK CFI 23d4 .cfa: $rsp 24 +
STACK CFI 23d6 .cfa: $rsp 32 +
STACK CFI 23d7 .cfa: $rsp 40 +
STACK CFI 23d8 $r12: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
STACK CFI INIT 24a0 f3 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 24a2 .cfa: $rsp 16 +
STACK CFI 24a4 .cfa: $rsp 24 +
STACK CFI 24a6 .cfa: $rsp 32 +
STACK CFI 24a7 .cfa: $rsp 40 +
STACK CFI 24a8 $r12: .cfa -32 + ^ $r14: .cfa -24 + ^ $r15: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
STACK CFI INIT 2810 1ba .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 2811 .cfa: $rsp 16 +
STACK CFI 2813 .cfa: $rsp 24 +
STACK CFI 2815 .cfa: $rsp 32 +
STACK CFI 2817 .cfa: $rsp 40 +
STACK CFI 2819 .cfa: $rsp 48 +
STACK CFI 281a .cfa: $rsp 56 +
STACK CFI 281b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 29d0 7 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 2be0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 3630 4a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 3680 3a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 36c0 1cc .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 36c1 .cfa: $rsp 16 +
STACK CFI 36c3 .cfa: $rsp 24 +
STACK CFI 36c5 .cfa: $rsp 32 +
STACK CFI 36c7 .cfa: $rsp 40 +
STACK CFI 36c9 .cfa: $rsp 48 +
STACK CFI 36ca .cfa: $rsp 56 +
STACK CFI 36cb $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 3c20 10f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 3c21 .cfa: $rsp 16 +
STACK CFI 3c23 .cfa: $rsp 24 +
STACK CFI 3c25 .cfa: $rsp 32 +
STACK CFI 3c27 .cfa: $rsp 40 +
STACK CFI 3c29 .cfa: $rsp 48 +
STACK CFI 3c2a .cfa: $rsp 56 +
STACK CFI 3c2b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 3d30 1c9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 3d31 .cfa: $rsp 16 +
STACK CFI 3d33 .cfa: $rsp 24 +
STACK CFI 3d35 .cfa: $rsp 32 +
STACK CFI 3d37 .cfa: $rsp 40 +
STACK CFI 3d39 .cfa: $rsp 48 +
STACK CFI 3d3a .cfa: $rsp 56 +
STACK CFI 3d3b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 4910 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 4920 20 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 4d90 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 4da0 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 4db0 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 4dc0 130 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 4dc1 .cfa: $rsp 16 +
STACK CFI 4dc3 .cfa: $rsp 24 +
STACK CFI 4dc5 .cfa: $rsp 32 +
STACK CFI 4dc6 .cfa: $rsp 40 +
STACK CFI 4dc7 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
STACK CFI INIT 4ef0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 5180 b .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 5181 .cfa: $rsp 16 +
STACK CFI INIT 5190 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 64f0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 6840 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 68f0 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 6920 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 7fc0 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 7ff0 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 8000 9 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 8010 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 83c0 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 83c1 .cfa: $rsp 16 +
STACK CFI INIT 8400 4 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 8410 8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT 8420 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 8421 .cfa: $rsp 16 +
STACK CFI 8423 .cfa: $rsp 24 +
STACK CFI 8425 .cfa: $rsp 32 +
STACK CFI 8426 .cfa: $rsp 40 +
STACK CFI 8427 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
STACK CFI INIT 8c80 4e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 8c81 .cfa: $rsp 16 +
STACK CFI 8c82 .cfa: $rsp 24 +
STACK CFI 8c83 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT 9140 158 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI 9141 .cfa: $rsp 16 +
STACK CFI 9143 .cfa: $rsp 24 +
STACK CFI 9145 .cfa: $rsp 32 +
STACK CFI 9147 .cfa: $rsp 40 +
STACK CFI 9149 .cfa: $rsp 48 +
STACK CFI 914a .cfa: $rsp 56 +
STACK CFI 914b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT 9ad0 fa .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT a680 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT a6a0 147 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI a6a1 .cfa: $rsp 16 +
STACK CFI a6a3 .cfa: $rsp 24 +
STACK CFI a6a5 .cfa: $rsp 32 +
STACK CFI a6a7 .cfa: $rsp 40 +
STACK CFI a6a9 .cfa: $rsp 48 +
STACK CFI a6aa .cfa: $rsp 56 +
STACK CFI a6ab $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT aee0 108 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI aee1 .cfa: $rsp 16 +
STACK CFI aee3 .cfa: $rsp 24 +
STACK CFI aee5 .cfa: $rsp 32 +
STACK CFI aee6 .cfa: $rsp 40 +
STACK CFI aee7 $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -40 + ^ .cfa: $rsp 48 +
STACK CFI INIT bda0 162 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI bda1 .cfa: $rsp 16 +
STACK CFI bda3 .cfa: $rsp 24 +
STACK CFI bda5 .cfa: $rsp 32 +
STACK CFI bda7 .cfa: $rsp 40 +
STACK CFI bda9 .cfa: $rsp 48 +
STACK CFI bdaa .cfa: $rsp 56 +
STACK CFI bdab $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT bf10 5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT bf20 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT bf40 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c170 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c240 c5 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c310 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c3d0 c0 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c490 1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c4a0 1 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c730 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT c930 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI c931 .cfa: $rsp 16 +
STACK CFI c932 .cfa: $rsp 24 +
STACK CFI c933 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT ca60 3d .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI ca61 .cfa: $rsp 16 +
STACK CFI ca62 .cfa: $rsp 24 +
STACK CFI ca63 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT d130 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d140 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d150 22 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d180 35 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d1c0 48 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d210 f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d220 87 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d2b0 2a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d2e0 25 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d310 c8 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d3e0 5e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d4e0 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d510 2f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT d540 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI d541 .cfa: $rsp 16 +
STACK CFI INIT d560 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI d561 .cfa: $rsp 16 +
STACK CFI INIT dca0 5f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI dca1 .cfa: $rsp 16 +
STACK CFI dca2 .cfa: $rsp 24 +
STACK CFI dca3 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT dd00 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT dd40 184 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI dd41 .cfa: $rsp 16 +
STACK CFI dd43 .cfa: $rsp 24 +
STACK CFI dd45 .cfa: $rsp 32 +
STACK CFI dd47 .cfa: $rsp 40 +
STACK CFI dd49 .cfa: $rsp 48 +
STACK CFI dd4a .cfa: $rsp 56 +
STACK CFI dd4b $r12: .cfa -48 + ^ $r13: .cfa -40 + ^ $r14: .cfa -32 + ^ $r15: .cfa -24 + ^ $rbp: .cfa -16 + ^ $rbx: .cfa -56 + ^ .cfa: $rsp 64 +
STACK CFI INIT e310 44 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e311 .cfa: $rsp 16 +
STACK CFI e312 .cfa: $rsp 24 +
STACK CFI e313 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e360 1a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e400 34 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e401 .cfa: $rsp 16 +
STACK CFI e402 .cfa: $rsp 24 +
STACK CFI e403 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e440 1c .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e460 e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e470 17 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e490 aa .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e492 .cfa: $rsp 16 +
STACK CFI e493 .cfa: $rsp 24 +
STACK CFI e494 $r14: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e540 16 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e560 13 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e6a0 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e6a1 .cfa: $rsp 16 +
STACK CFI e6a2 .cfa: $rsp 24 +
STACK CFI e6a3 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e6e0 3f .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e6e1 .cfa: $rsp 16 +
STACK CFI e6e2 .cfa: $rsp 24 +
STACK CFI e6e3 $rbp: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e720 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e730 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e740 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e741 .cfa: $rsp 16 +
STACK CFI INIT e770 23 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e771 .cfa: $rsp 16 +
STACK CFI INIT e7a0 63 .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e7a1 .cfa: $rsp 16 +
STACK CFI INIT e810 4b .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e812 .cfa: $rsp 16 +
STACK CFI e813 .cfa: $rsp 24 +
STACK CFI e814 $r14: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e860 4b .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e862 .cfa: $rsp 16 +
STACK CFI e863 .cfa: $rsp 24 +
STACK CFI e864 $r14: .cfa -16 + ^ $rbx: .cfa -24 + ^ .cfa: $rsp 32 +
STACK CFI INIT e8b0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e8c0 a .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI INIT e8d0 3e .cfa: $rsp 8 + .ra: .cfa -8 + ^
STACK CFI e8d1 .cfa: $rsp 16 +
Loading