diff --git a/symbolic-symcache/tests/test_writer.rs b/symbolic-symcache/tests/test_writer.rs index 47fcc8ecd..5485eb376 100644 --- a/symbolic-symcache/tests/test_writer.rs +++ b/symbolic-symcache/tests/test_writer.rs @@ -351,3 +351,25 @@ fn test_trailing_marker() -> Result<(), Error> { Ok(()) } + +/// Tests that addresses between functions are unmapped. See +/// . +#[test] +fn test_lookup_between_functions() { + let buffer = ByteView::open(fixture( + "macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/DWARF/CrashLibiOS", + )) + .unwrap(); + let object = Object::parse(&buffer).unwrap(); + + let mut buffer = Vec::new(); + let mut converter = SymCacheConverter::new(); + converter.process_object(&object).unwrap(); + converter.serialize(&mut Cursor::new(&mut buffer)).unwrap(); + let symcache = SymCache::parse(&buffer).unwrap(); + // This address is exactly at the end of the function "-[CRLCrashNXPage desc]", + // which starts at 0x8b0c and has size 0x2c. The next function, + // "-[CRLCrashStackGuard category]", starts at 0x8b3c. + let symbols = symcache.lookup(0x8b38).collect::>(); + assert!(symbols.is_empty()); +} diff --git a/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Info.plist b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Info.plist new file mode 100644 index 000000000..a3d4c3fbb --- /dev/null +++ b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.CrashLibiOS + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.plist b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.plist new file mode 100644 index 000000000..d1981ea8b --- /dev/null +++ b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.plist @@ -0,0 +1,7 @@ + + + + DBGOriginalUUID + 73F2DB01-F4C5-371A-9FC2-7A48430A26F7 + + \ No newline at end of file diff --git a/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/DWARF/CrashLibiOS b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/DWARF/CrashLibiOS new file mode 100644 index 000000000..0c1a9837b Binary files /dev/null and b/symbolic-testutils/fixtures/macos/3CD3E3CC-281E-3AF3-84EB-CDE6D56F0559.dSYM/Contents/Resources/DWARF/CrashLibiOS differ