From b5c8152b185e0f514897a29157be56a8843523fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Baumg=C3=A4rtner?= Date: Wed, 26 Nov 2025 19:16:53 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Finaler=20Stand=20Projekt=202=20-=20es=20l?= =?UTF-8?q?=C3=A4uft=20jetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 8196 bytes imageInput.c | 210 +++++++++++++++++- runImageInputTests.dSYM/Contents/Info.plist | 20 ++ .../Resources/DWARF/runImageInputTests | Bin 0 -> 40129 bytes .../Relocations/x86_64/runImageInputTests.yml | 110 +++++++++ 5 files changed, 332 insertions(+), 8 deletions(-) create mode 100644 .DS_Store create mode 100644 runImageInputTests.dSYM/Contents/Info.plist create mode 100644 runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests create mode 100644 runImageInputTests.dSYM/Contents/Resources/Relocations/x86_64/runImageInputTests.yml diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2d4d6995ed3134427acd01d8de8872a52bc0d592 GIT binary patch literal 8196 zcmeHMPiqrF9DSpyi9}FPum{1pl%5m{A|BTo4W^8mtBn zHQ8)Y%($tgvd8xvBPzxNYrVy}b|>o(N?hp>2gCt!KpYSU#DRaq0lu?MX;i%T-KezU zfH?49I$)j;n$=+9v2bV~9c*k0K&-Lb79KMXurbgN`Yuuh4>799D^d5-xuHg*T-YhAeZJ14!N^Yn*z4K|L`6v9b>R;hUx@YZE zaUY#sz`DKKY2=QK6P&T8Do&)Mo^Tl)rH&!*w+q(CMcn4mG6w8h z!4-bWi8)T9i#D#~Qlu2GAMJdG@LZnVIR2#BvG?r`b%giL@6QtXfe*%yDeJ}(&w4#N z*V@%L@o0D+7vFAPlOR6SxHThMzqVo4uVdAI|GWGKt|E^#=)<4Oj8Mn-gWpE?#>70K zmTFd{M{ED{LEiu7!blMZcF}>oZtiK5|DUhk|KCLgGPO7$4*YEgRISx+%~OTXtxI}L wuB};bv6^Cdg+m*{#-`&$n~oDV|1jjSCe_3w9t(%;VUdjhYlAf6z#nzs2dCH>KmY&$ literal 0 HcmV?d00001 diff --git a/imageInput.c b/imageInput.c index bb30de1..b433e1b 100644 --- a/imageInput.c +++ b/imageInput.c @@ -3,20 +3,214 @@ #include #include "imageInput.h" +// Größe eines temporären Puffers #define BUFFER_SIZE 100 + +// Fester Header-String, der am Anfang jeder gültigen Bilddatei stehen muss #define FILE_HEADER_STRING "__info2_image_file_format__" -// TODO Implementieren Sie geeignete Hilfsfunktionen für das Lesen der Bildserie aus einer Datei - -// TODO Vervollständigen Sie die Funktion readImages unter Benutzung Ihrer Hilfsfunktionen -GrayScaleImageSeries *readImages(const char *path) +/* + * Prüft den Dateiheader und liest Bildanzahl, Breite und Höhe aus. + * Gibt 1 (true) zurück, wenn alles gültig ist, sonst 0 (false). + */ +static int checkheader(FILE *path, unsigned short *count, unsigned short *width, unsigned short *height) { - GrayScaleImageSeries *series = NULL; - + unsigned int headerlen = strlen(FILE_HEADER_STRING); + unsigned char header[64]; + + // Prüfen, ob der Header-String in den Puffer passt + if (headerlen >= sizeof(header)) + { + return 0; + } + + // Header aus Datei lesen – muss exakt gleich lang sein + if (fread(header, 1, headerlen, path) != headerlen) + { + return 0; + } + + // Header vergleichen – Datei muss mit FILE_HEADER_STRING beginnen + if (strncmp((char *)header, FILE_HEADER_STRING, headerlen) != 0) + { + return 0; + } + + // Danach folgen im File: count, width, height (je 2 Bytes) + if (fread(count, sizeof(unsigned short), 1, path) != 1) + return 0; + + if (fread(width, sizeof(unsigned short), 1, path) != 1) + return 0; + + if (fread(height, sizeof(unsigned short), 1, path) != 1) + return 0; + + return 1; +} + +/* + * Reserviert Speicher für eine Serie von Graustufenbildern. + * Legt: + * - Hauptstruktur + * - Array von Bildern + * - Array von Labels + * - Für jedes Bild einen Pixelpuffer + * an. + */ +static GrayScaleImageSeries *allocateSeries(unsigned short count, unsigned short width, unsigned short height) +{ + // Platz für die Gesamtstruktur anfordern + GrayScaleImageSeries *series = malloc(sizeof(GrayScaleImageSeries)); + if (series == NULL) + { + return NULL; + } + + series->count = count; + + // Arrays für Bilder und Labels anlegen + series->images = calloc(count, sizeof(GrayScaleImage)); + series->labels = calloc(count, sizeof(unsigned char)); + + if (series->images == NULL || series->labels == NULL) + { + return NULL; + } + + // Jedem Bild Höhe, Breite und einen eigenen Pixelpuffer zuweisen + for (unsigned int i = 0; i < count; i++) + { + series->images[i].height = height; + series->images[i].width = width; + + // Für jedes Bild einen Puffer anlegen: width * height Pixel + series->images[i].buffer = calloc(height * width, sizeof(GrayScalePixelType)); + + if (series->images[i].buffer == NULL) + { + // Falls ein Puffer fehlschlägt → alles bisherige wieder freigeben + clearSeries(series); + return NULL; + } + } + return series; } -// TODO Vervollständigen Sie die Funktion clearSeries, welche eine Bildserie vollständig aus dem Speicher freigibt +/* + * Liest die Pixeldaten und Labels aller Bilder aus der Datei. + * Reihenfolge in der Datei je Bild: + * 1. Pixelwerte (width*height Stück) + * 2. 1 Byte Label + */ +static int loadImageData(FILE *file, GrayScaleImageSeries *series, unsigned short count, unsigned short width, unsigned short height) +{ + for (unsigned int i = 0; i < count; i++) + { + size_t pixelCount = width * height; + + // Pixeldaten in den Bildpuffer schreiben + if (fread(series->images[i].buffer, sizeof(GrayScalePixelType), pixelCount, file) != pixelCount) + { + return 0; + } + + // Label lesen (1 Byte) + if (fread(&series->labels[i], sizeof(unsigned char), 1, file) != 1) + { + return 0; + } + } + + return 1; +} + +// Schliesst eine Datei, sofern sie geöffnet ist +static void closefile(FILE *file) +{ + if (file != NULL) + { + fclose(file); + } +} + +/* + * Hauptfunktion zum Einlesen der Bilddaten: + * 1. Datei öffnen + * 2. Header + Metadaten lesen + * 3. Speicher anlegen + * 4. Pixeldaten + Labels laden + * 5. Datei schließen + * 6. Zeiger auf fertige Daten zurückgeben + */ +GrayScaleImageSeries *readImages(const char *path) +{ + unsigned short count, width, height; + GrayScaleImageSeries *series = NULL; + + // Datei im binären Modus öffnen + FILE *file = fopen(path, "rb"); + if (file == NULL) + { + return NULL; + } + + // Header überprüfen und Metadaten lesen + if (!checkheader(file, &count, &width, &height)) + { + closefile(file); + return NULL; + } + + // Speicher für Serie anlegen + series = allocateSeries(count, width, height); + if (series == NULL) + { + closefile(file); + return NULL; + } + + // Bilddaten laden + if (!loadImageData(file, series, count, width, height)) + { + clearSeries(series); + closefile(file); + return NULL; + } + + // Datei schließen und fertige Struktur zurückgeben + closefile(file); + + return series; +} + +/* + * Gibt den gesamten reservierten Speicher der Bildserie wieder frei. + * Dazu: + * - alle Pixelpuffer + * - Bilderarray + * - Labelsarray + * - Hauptstruktur + */ void clearSeries(GrayScaleImageSeries *series) { -} \ No newline at end of file + if (series != NULL) + { + // Erst alle Bildpuffer freigeben + for (unsigned int i = 0; i < series->count; i++) + { + free(series->images[i].buffer); + } + + // Danach Arrays freigeben + free(series->images); + free(series->labels); + + // Am Ende die Struktur selbst + free(series); + } + + // count, width, height müssen nicht auf 0 gesetzt werden, + // da sie bei einer Neu-Allokation sowieso überschrieben werden. +} diff --git a/runImageInputTests.dSYM/Contents/Info.plist b/runImageInputTests.dSYM/Contents/Info.plist new file mode 100644 index 0000000..cfe5e59 --- /dev/null +++ b/runImageInputTests.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.runImageInputTests + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests b/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests new file mode 100644 index 0000000000000000000000000000000000000000..57b19303b52dd0feaee239d2d627e22247d676a5 GIT binary patch literal 40129 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˛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 N@Q+~X^=Rek{{xKqa4!G= literal 0 HcmV?d00001 diff --git a/runImageInputTests.dSYM/Contents/Resources/Relocations/x86_64/runImageInputTests.yml b/runImageInputTests.dSYM/Contents/Resources/Relocations/x86_64/runImageInputTests.yml new file mode 100644 index 0000000..17b9bf4 --- /dev/null +++ b/runImageInputTests.dSYM/Contents/Resources/Relocations/x86_64/runImageInputTests.yml @@ -0,0 +1,110 @@ +--- +triple: 'x86_64-apple-darwin' +binary-path: runImageInputTests +relocations: + - { offset: 0x26, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsCorrectNumberOfImages, symObjAddr: 0x0, symBinAddr: 0x100000A80, symSize: 0xB0 } + - { offset: 0x6E, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsCorrectNumberOfImages, symObjAddr: 0x0, symBinAddr: 0x100000A80, symSize: 0xB0 } + - { offset: 0xAE, size: 0x8, addend: 0x0, symName: _prepareImageFile, symObjAddr: 0xB0, symBinAddr: 0x100000B30, symSize: 0x160 } + - { offset: 0x15E, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsCorrectImageWidth, symObjAddr: 0x210, symBinAddr: 0x100000C90, symSize: 0x130 } + - { offset: 0x19E, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsCorrectImageHeight, symObjAddr: 0x340, symBinAddr: 0x100000DC0, symSize: 0x130 } + - { offset: 0x1DE, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsCorrectLabels, symObjAddr: 0x470, symBinAddr: 0x100000EF0, symSize: 0x130 } + - { offset: 0x23A, size: 0x8, addend: 0x0, symName: _test_readImagesReturnsNullOnNotExistingPath, symObjAddr: 0x5A0, symBinAddr: 0x100001020, symSize: 0x50 } + - { offset: 0x25E, size: 0x8, addend: 0x0, symName: _test_readImagesFailsOnWrongFileTag, symObjAddr: 0x5F0, symBinAddr: 0x100001070, symSize: 0x90 } + - { offset: 0x290, size: 0x8, addend: 0x0, symName: _setUp, symObjAddr: 0x680, symBinAddr: 0x100001100, symSize: 0x10 } + - { offset: 0x2A5, size: 0x8, addend: 0x0, symName: _tearDown, symObjAddr: 0x690, symBinAddr: 0x100001110, symSize: 0x10 } + - { offset: 0x2BA, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x6A0, symBinAddr: 0x100001120, symSize: 0xC4 } + - { offset: 0x569, size: 0x8, addend: 0x0, symName: _readImages, symObjAddr: 0x0, symBinAddr: 0x1000011F0, symSize: 0x120 } + - { offset: 0x58A, size: 0x8, addend: 0x0, symName: _readImages, symObjAddr: 0x0, symBinAddr: 0x1000011F0, symSize: 0x120 } + - { offset: 0x5F8, size: 0x8, addend: 0x0, symName: _checkheader, symObjAddr: 0x120, symBinAddr: 0x100001310, symSize: 0x160 } + - { offset: 0x66C, size: 0x8, addend: 0x0, symName: _closefile, symObjAddr: 0x280, symBinAddr: 0x100001470, symSize: 0x30 } + - { offset: 0x690, size: 0x8, addend: 0x0, symName: _allocateSeries, symObjAddr: 0x2B0, symBinAddr: 0x1000014A0, symSize: 0x180 } + - { offset: 0x6FE, size: 0x8, addend: 0x0, symName: _loadImageData, symObjAddr: 0x430, symBinAddr: 0x100001620, symSize: 0xE0 } + - { offset: 0x796, size: 0x8, addend: 0x0, symName: _clearSeries, symObjAddr: 0x510, symBinAddr: 0x100001700, symSize: 0x7D } + - { offset: 0xAB0, size: 0x8, addend: 0x0, symName: _UnityPrint, symObjAddr: 0x0, symBinAddr: 0x100001780, symSize: 0x60 } + - { offset: 0xAC9, size: 0x8, addend: 0x0, symName: _UnityStrOk, symObjAddr: 0x4390, symBinAddr: 0x100005CD0, symSize: 0x0 } + - { offset: 0xAFD, size: 0x8, addend: 0x0, symName: _UnityStrPass, symObjAddr: 0x4393, symBinAddr: 0x100005CD3, symSize: 0x0 } + - { offset: 0xB1E, size: 0x8, addend: 0x0, symName: _UnityStrFail, symObjAddr: 0x4398, symBinAddr: 0x100005CD8, symSize: 0x0 } + - { offset: 0xB33, size: 0x8, addend: 0x0, symName: _UnityStrIgnore, symObjAddr: 0x439D, symBinAddr: 0x100005CDD, symSize: 0x0 } + - { offset: 0xB54, size: 0x8, addend: 0x0, symName: _UnityStrErrShorthand, symObjAddr: 0x43B0, symBinAddr: 0x100005CF0, symSize: 0x0 } + - { offset: 0xB75, size: 0x8, addend: 0x0, symName: _UnityStrErrFloat, symObjAddr: 0x43E0, symBinAddr: 0x100005D20, symSize: 0x0 } + - { offset: 0xB96, size: 0x8, addend: 0x0, symName: _UnityStrErrDouble, symObjAddr: 0x4400, symBinAddr: 0x100005D40, symSize: 0x0 } + - { offset: 0xBB7, size: 0x8, addend: 0x0, symName: _UnityStrErr64, symObjAddr: 0x4420, symBinAddr: 0x100005D60, symSize: 0x0 } + - { offset: 0xBCC, size: 0x8, addend: 0x0, symName: _UnityStrErrDetailStack, symObjAddr: 0x4440, symBinAddr: 0x100005D80, symSize: 0x0 } + - { offset: 0xBE1, size: 0x8, addend: 0x0, symName: _UnityPrintFloat, symObjAddr: 0x5D0, symBinAddr: 0x100001D50, symSize: 0x6D0 } + - { offset: 0xC04, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.sig_digits, symObjAddr: 0x4464, symBinAddr: 0x100005DA4, symSize: 0x0 } + - { offset: 0xC1A, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.min_scaled, symObjAddr: 0x4468, symBinAddr: 0x100005DA8, symSize: 0x0 } + - { offset: 0xC30, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.max_scaled, symObjAddr: 0x446C, symBinAddr: 0x100005DAC, symSize: 0x0 } + - { offset: 0xE00, size: 0x8, addend: 0x0, symName: _Unity, symBinAddr: 0x100007008, symSize: 0x0 } + - { offset: 0xEE8, size: 0x8, addend: 0x0, symName: _UnityQuickCompare, symObjAddr: 0xAE68, symBinAddr: 0x100007000, symSize: 0x0 } + - { offset: 0xF81, size: 0x8, addend: 0x0, symName: _UnityStrExpected, symObjAddr: 0x4470, symBinAddr: 0x100005DB0, symSize: 0x0 } + - { offset: 0xFA2, size: 0x8, addend: 0x0, symName: _UnityStrWas, symObjAddr: 0x447B, symBinAddr: 0x100005DBB, symSize: 0x0 } + - { offset: 0xFC3, size: 0x8, addend: 0x0, symName: _UnityStrSpacer, symObjAddr: 0x4605, symBinAddr: 0x100005F45, symSize: 0x0 } + - { offset: 0xFD8, size: 0x8, addend: 0x0, symName: _UnityStrDetail1Name, symObjAddr: 0x4608, symBinAddr: 0x100005F48, symSize: 0x0 } + - { offset: 0xFF9, size: 0x8, addend: 0x0, symName: _UnityStrDetail2Name, symObjAddr: 0x4612, symBinAddr: 0x100005F52, symSize: 0x0 } + - { offset: 0x100E, size: 0x8, addend: 0x0, symName: _UnityStrGt, symObjAddr: 0x4490, symBinAddr: 0x100005DD0, symSize: 0x0 } + - { offset: 0x102F, size: 0x8, addend: 0x0, symName: _UnityStrLt, symObjAddr: 0x44B0, symBinAddr: 0x100005DF0, symSize: 0x0 } + - { offset: 0x1050, size: 0x8, addend: 0x0, symName: _UnityStrOrEqual, symObjAddr: 0x44C2, symBinAddr: 0x100005E02, symSize: 0x0 } + - { offset: 0x1071, size: 0x8, addend: 0x0, symName: _UnityStrNotEqual, symObjAddr: 0x44D0, symBinAddr: 0x100005E10, symSize: 0x0 } + - { offset: 0x1086, size: 0x8, addend: 0x0, symName: _UnityStrPointless, symObjAddr: 0x44F0, symBinAddr: 0x100005E30, symSize: 0x0 } + - { offset: 0x10A7, size: 0x8, addend: 0x0, symName: _UnityStrNullPointerForExpected, symObjAddr: 0x4620, symBinAddr: 0x100005F60, symSize: 0x0 } + - { offset: 0x10C8, size: 0x8, addend: 0x0, symName: _UnityStrNullPointerForActual, symObjAddr: 0x4640, symBinAddr: 0x100005F80, symSize: 0x0 } + - { offset: 0x10E9, size: 0x8, addend: 0x0, symName: _UnityStrElement, symObjAddr: 0x4527, symBinAddr: 0x100005E67, symSize: 0x0 } + - { offset: 0x10FE, size: 0x8, addend: 0x0, symName: _UnityStrInf, symObjAddr: 0x4531, symBinAddr: 0x100005E71, symSize: 0x0 } + - { offset: 0x111F, size: 0x8, addend: 0x0, symName: _UnityStrNegInf, symObjAddr: 0x4540, symBinAddr: 0x100005E80, symSize: 0x0 } + - { offset: 0x1134, size: 0x8, addend: 0x0, symName: _UnityStrNaN, symObjAddr: 0x4552, symBinAddr: 0x100005E92, symSize: 0x0 } + - { offset: 0x1155, size: 0x8, addend: 0x0, symName: _UnityStrDet, symObjAddr: 0x4556, symBinAddr: 0x100005E96, symSize: 0x0 } + - { offset: 0x1176, size: 0x8, addend: 0x0, symName: _UnityStrInvalidFloatTrait, symObjAddr: 0x4570, symBinAddr: 0x100005EB0, symSize: 0x0 } + - { offset: 0x1197, size: 0x8, addend: 0x0, symName: _UnityStrNot, symObjAddr: 0x4584, symBinAddr: 0x100005EC4, symSize: 0x0 } + - { offset: 0x11AC, size: 0x8, addend: 0x0, symName: _UnityStrDelta, symObjAddr: 0x4590, symBinAddr: 0x100005ED0, symSize: 0x0 } + - { offset: 0x11CD, size: 0x8, addend: 0x0, symName: _UnityStrNull, symObjAddr: 0x4659, symBinAddr: 0x100005F99, symSize: 0x0 } + - { offset: 0x11E2, size: 0x8, addend: 0x0, symName: _UnityStrMemory, symObjAddr: 0x45B0, symBinAddr: 0x100005EF0, symSize: 0x0 } + - { offset: 0x11F7, size: 0x8, addend: 0x0, symName: _UnityStrByte, symObjAddr: 0x45C2, symBinAddr: 0x100005F02, symSize: 0x0 } + - { offset: 0x120C, size: 0x8, addend: 0x0, symName: _UnityStrBreaker, symObjAddr: 0x45D0, symBinAddr: 0x100005F10, symSize: 0x0 } + - { offset: 0x122D, size: 0x8, addend: 0x0, symName: _UnityStrResultsTests, symObjAddr: 0x45E8, symBinAddr: 0x100005F28, symSize: 0x0 } + - { offset: 0x124E, size: 0x8, addend: 0x0, symName: _UnityStrResultsFailures, symObjAddr: 0x45F0, symBinAddr: 0x100005F30, symSize: 0x0 } + - { offset: 0x1263, size: 0x8, addend: 0x0, symName: _UnityStrResultsIgnored, symObjAddr: 0x45FB, symBinAddr: 0x100005F3B, symSize: 0x0 } + - { offset: 0x13DC, size: 0x8, addend: 0x0, symName: _UnityPrint, symObjAddr: 0x0, symBinAddr: 0x100001780, symSize: 0x60 } + - { offset: 0x140E, size: 0x8, addend: 0x0, symName: _UnityPrintChar, symObjAddr: 0x60, symBinAddr: 0x1000017E0, symSize: 0xD0 } + - { offset: 0x1432, size: 0x8, addend: 0x0, symName: _UnityPrintLen, symObjAddr: 0x130, symBinAddr: 0x1000018B0, symSize: 0x130 } + - { offset: 0x1472, size: 0x8, addend: 0x0, symName: _UnityPrintNumberHex, symObjAddr: 0x260, symBinAddr: 0x1000019E0, symSize: 0x90 } + - { offset: 0x14C5, size: 0x8, addend: 0x0, symName: _UnityPrintIntNumberByStyle, symObjAddr: 0x2F0, symBinAddr: 0x100001A70, symSize: 0x100 } + - { offset: 0x14F7, size: 0x8, addend: 0x0, symName: _UnityPrintNumber, symObjAddr: 0x3F0, symBinAddr: 0x100001B70, symSize: 0x50 } + - { offset: 0x1529, size: 0x8, addend: 0x0, symName: _UnityPrintUintNumberByStyle, symObjAddr: 0x440, symBinAddr: 0x100001BC0, symSize: 0x60 } + - { offset: 0x155B, size: 0x8, addend: 0x0, symName: _UnityPrintNumberUnsigned, symObjAddr: 0x4A0, symBinAddr: 0x100001C20, symSize: 0x90 } + - { offset: 0x1590, size: 0x8, addend: 0x0, symName: _UnityPrintMask, symObjAddr: 0x530, symBinAddr: 0x100001CB0, symSize: 0xA0 } + - { offset: 0x1673, size: 0x8, addend: 0x0, symName: _UnityConcludeTest, symObjAddr: 0xCA0, symBinAddr: 0x100002420, symSize: 0xC0 } + - { offset: 0x1689, size: 0x8, addend: 0x0, symName: _UnityTestResultsBegin, symObjAddr: 0xD60, symBinAddr: 0x1000024E0, symSize: 0x60 } + - { offset: 0x16BE, size: 0x8, addend: 0x0, symName: _UnityAssertBits, symObjAddr: 0xDC0, symBinAddr: 0x100002540, symSize: 0xE0 } + - { offset: 0x1720, size: 0x8, addend: 0x0, symName: _UnityTestResultsFailBegin, symObjAddr: 0xEA0, symBinAddr: 0x100002620, symSize: 0x40 } + - { offset: 0x1746, size: 0x8, addend: 0x0, symName: _UnityAddMsgIfSpecified, symObjAddr: 0xEE0, symBinAddr: 0x100002660, symSize: 0xA0 } + - { offset: 0x176C, size: 0x8, addend: 0x0, symName: _UnityAssertEqualIntNumber, symObjAddr: 0xF80, symBinAddr: 0x100002700, symSize: 0xD0 } + - { offset: 0x17CE, size: 0x8, addend: 0x0, symName: _UnityAssertEqualUintNumber, symObjAddr: 0x1050, symBinAddr: 0x1000027D0, symSize: 0xD0 } + - { offset: 0x1830, size: 0x8, addend: 0x0, symName: _UnityAssertIntGreaterOrLessOrEqualNumber, symObjAddr: 0x1120, symBinAddr: 0x1000028A0, symSize: 0x1A0 } + - { offset: 0x18B0, size: 0x8, addend: 0x0, symName: _UnityAssertUintGreaterOrLessOrEqualNumber, symObjAddr: 0x12C0, symBinAddr: 0x100002A40, symSize: 0x1A0 } + - { offset: 0x1930, size: 0x8, addend: 0x0, symName: _UnityAssertEqualIntArray, symObjAddr: 0x1460, symBinAddr: 0x100002BE0, symSize: 0x3C0 } + - { offset: 0x1A28, size: 0x8, addend: 0x0, symName: _UnityIsOneArrayNull, symObjAddr: 0x1820, symBinAddr: 0x100002FA0, symSize: 0xB0 } + - { offset: 0x1A7F, size: 0x8, addend: 0x0, symName: _UnityAssertWithinFloatArray, symObjAddr: 0x18D0, symBinAddr: 0x100003050, symSize: 0x460 } + - { offset: 0x1C09, size: 0x8, addend: 0x0, symName: _UnityFloatsWithin, symObjAddr: 0x1D30, symBinAddr: 0x1000034B0, symSize: 0x5F0 } + - { offset: 0x1E8D, size: 0x8, addend: 0x0, symName: _UnityAssertFloatsWithin, symObjAddr: 0x2320, symBinAddr: 0x100003AA0, symSize: 0xE0 } + - { offset: 0x1EEF, size: 0x8, addend: 0x0, symName: _UnityAssertFloatsNotWithin, symObjAddr: 0x2400, symBinAddr: 0x100003B80, symSize: 0xE0 } + - { offset: 0x1F51, size: 0x8, addend: 0x0, symName: _UnityAssertGreaterOrLessFloat, symObjAddr: 0x24E0, symBinAddr: 0x100003C60, symSize: 0x1A0 } + - { offset: 0x1FC2, size: 0x8, addend: 0x0, symName: _UnityAssertFloatSpecial, symObjAddr: 0x2680, symBinAddr: 0x100003E00, symSize: 0x600 } + - { offset: 0x21AC, size: 0x8, addend: 0x0, symName: _UnityAssertIntNumbersWithin, symObjAddr: 0x2C80, symBinAddr: 0x100004400, symSize: 0x150 } + - { offset: 0x221D, size: 0x8, addend: 0x0, symName: _UnityAssertUintNumbersWithin, symObjAddr: 0x2DD0, symBinAddr: 0x100004550, symSize: 0x150 } + - { offset: 0x228E, size: 0x8, addend: 0x0, symName: _UnityAssertNumbersArrayWithin, symObjAddr: 0x2F20, symBinAddr: 0x1000046A0, symSize: 0x4E0 } + - { offset: 0x2396, size: 0x8, addend: 0x0, symName: _UnityAssertEqualString, symObjAddr: 0x3400, symBinAddr: 0x100004B80, symSize: 0x180 } + - { offset: 0x23F8, size: 0x8, addend: 0x0, symName: _UnityPrintExpectedAndActualStrings, symObjAddr: 0x3580, symBinAddr: 0x100004D00, symSize: 0xA0 } + - { offset: 0x242D, size: 0x8, addend: 0x0, symName: _UnityAssertEqualStringLen, symObjAddr: 0x3620, symBinAddr: 0x100004DA0, symSize: 0x1A0 } + - { offset: 0x249E, size: 0x8, addend: 0x0, symName: _UnityPrintExpectedAndActualStringsLen, symObjAddr: 0x37C0, symBinAddr: 0x100004F40, symSize: 0xB0 } + - { offset: 0x24E2, size: 0x8, addend: 0x0, symName: _UnityAssertEqualStringArray, symObjAddr: 0x3870, symBinAddr: 0x100004FF0, symSize: 0x2B0 } + - { offset: 0x2590, size: 0x8, addend: 0x0, symName: _UnityAssertEqualMemory, symObjAddr: 0x3B20, symBinAddr: 0x1000052A0, symSize: 0x2A0 } + - { offset: 0x264C, size: 0x8, addend: 0x0, symName: _UnityNumToPtr, symObjAddr: 0x3DC0, symBinAddr: 0x100005540, symSize: 0xB0 } + - { offset: 0x2685, size: 0x8, addend: 0x0, symName: _UnityFloatToPtr, symObjAddr: 0x3E70, symBinAddr: 0x1000055F0, symSize: 0x20 } + - { offset: 0x26AF, size: 0x8, addend: 0x0, symName: _UnityFail, symObjAddr: 0x3E90, symBinAddr: 0x100005610, symSize: 0xA0 } + - { offset: 0x26E4, size: 0x8, addend: 0x0, symName: _UnityIgnore, symObjAddr: 0x3F30, symBinAddr: 0x1000056B0, symSize: 0xC0 } + - { offset: 0x2719, size: 0x8, addend: 0x0, symName: _UnityMessage, symObjAddr: 0x3FF0, symBinAddr: 0x100005770, symSize: 0x70 } + - { offset: 0x274E, size: 0x8, addend: 0x0, symName: _UnityDefaultTestRun, symObjAddr: 0x4060, symBinAddr: 0x1000057E0, symSize: 0xD0 } + - { offset: 0x2792, size: 0x8, addend: 0x0, symName: _UnitySetTestFile, symObjAddr: 0x4130, symBinAddr: 0x1000058B0, symSize: 0x20 } + - { offset: 0x27B8, size: 0x8, addend: 0x0, symName: _UnityBegin, symObjAddr: 0x4150, symBinAddr: 0x1000058D0, symSize: 0xA0 } + - { offset: 0x27DE, size: 0x8, addend: 0x0, symName: _UnityEnd, symObjAddr: 0x41F0, symBinAddr: 0x100005970, symSize: 0xC8 } +... -- 2.47.2 From 87c527b569cb8beab6a9621a58a7fd8f5cd9d7b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Baumg=C3=A4rtner?= Date: Wed, 26 Nov 2025 19:27:54 +0100 Subject: [PATCH 2/2] Update --- .../Resources/DWARF/runImageInputTests | Bin 40129 -> 40129 bytes runMatrixTests.dSYM/Contents/Info.plist | 20 +++ .../Contents/Resources/DWARF/runMatrixTests | Bin 0 -> 42725 bytes .../Relocations/x86_64/runMatrixTests.yml | 115 ++++++++++++++++ .../Contents/Info.plist | 20 +++ .../Resources/DWARF/runNeuralNetworkTests | Bin 0 -> 51521 bytes .../x86_64/runNeuralNetworkTests.yml | 129 ++++++++++++++++++ 7 files changed, 284 insertions(+) create mode 100644 runMatrixTests.dSYM/Contents/Info.plist create mode 100644 runMatrixTests.dSYM/Contents/Resources/DWARF/runMatrixTests create mode 100644 runMatrixTests.dSYM/Contents/Resources/Relocations/x86_64/runMatrixTests.yml create mode 100644 runNeuralNetworkTests.dSYM/Contents/Info.plist create mode 100644 runNeuralNetworkTests.dSYM/Contents/Resources/DWARF/runNeuralNetworkTests create mode 100644 runNeuralNetworkTests.dSYM/Contents/Resources/Relocations/x86_64/runNeuralNetworkTests.yml diff --git a/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests b/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests index 57b19303b52dd0feaee239d2d627e22247d676a5..920bb894c03e6954ccc9ed53ddcd118c37fa9a46 100644 GIT binary patch delta 1309 zcmZuvOK22X6s=b^=h;=Qow7ThHf==nX=7v>rqMA%#V9V+N)$=3X%i6puMZixC(noq8894-7R^=pGSKu&a zr#$2cZRyM7=vYBFgBc%dKfsN+tJ3)uY+}0T<3}HkDlVZVDkkfA+@xs*AZx8$Gp0X8 z_-C;-a0RlCxh)5Knp_XI&%&lfw3FIXB}8c!+Zp#5->`_CjN4W0osS}9{-h#4c70H_ zXVJ9qok%(2^v4`5K>Q)CBdPfyZIwM3){(jiLkPn*FE$&7Fbu<*p-UO(nev4@YbzjR zdd!p&@j*fy5a@PN3n<9h#2nIFUh6G$K04$eTIB?=jAn%fR-wR_!^m^G%|5y&P*%&a zxJ@}ag-%b!QKI{i{(9y;bk3rSU3eQrfi1L%B0Csh2fEcw!m8w4@Dv$ z8{|0#dD;MYg+A+2mBZF~8_QK+J{KL5X+K$Yb8GC$e}+Jtllte|={h)F4~x3Eod>tX zLms9ZK5`y3o5SK8z@FJdFJG-KbU36(go93^;{KI?Zqi?r5PA;P)dmSami zgc~2Cz`;A|Op!ZkFS6{X-b$7Mw)gO}tk9V{pY%!ktT`FJLH)@mEXTEP;z|3qhrK~~ z%QOtfY+QWAlZ&uq8Ai%%{MyZbal1c47Zz16LFboNqf<8(x}&!MQh=e z(e{nMD4BF6euvj7!a0tfS2DkabEAdgl3G*GwWM07+uE2SZBIm<`lQbA^2x{1HwV80 D|0~vc delta 1309 zcmZuvJxo(!6n#IvpO4ofh0-5dK#b6zfksp!=o3s}Fb@U;v3Zb6keEt{F`z{WiqC;W zNVvbU*}(!t`} zJ5P^)_7AQtJ-;42nzTOjeCn`&OER_UJCsl=nG9d~)0oR~_iNc0mY5_HE0a90$vWOdqH}6sp;sJ{WwwwrRI8+rB+F8bGTSIgvLs3BF zLtOEQT{5L~ZJSzI)iVe5n6qxgq&C(^O{_rLK1DgYb^_S}HcSajch00_fx7u}D2{VS zi_~H8INVIR`i;mN)KR4*y5KhC1lnN{0+$g$2e_4jVf$_p>>wtHAsI9%17uP&`UUxE zZPLC_r#f%pBqiKNt>s@P79C=K(_6JI;(GEOp2T(S=-=tu&@GLkB(^gsl*J*3;f6^O zgVI$RHpqguNfTTf+~_WyK^A5VwibB8+;A8Z^U%!alW6iaM@zg5>Z~6e+5M=KV!;r;@iD<;xug%j zdI}j`Ew9)@PVcuJ{LU7FdW=N6WD7+PzOsd+fSOufwlDBrfdrpUEw9@KhqW!Jm1?}l zn*@+^13WW_^%lfnbIxGiyIqi_%I=8P+vR%jSPap{w?;`(%;2GiVg!M(=d{@RV&%_B zd}@Htfpxtn@=Yk`xpH2t3v-2fo~xs=Q=E523qmySiry8X9-0!O`O4yGym^Al_;c<% sdtOjg!M6UkM+rkHD$xAsS)NP*VpP>a9#8P+zAN59_q3$XXq?*IS* diff --git a/runMatrixTests.dSYM/Contents/Info.plist b/runMatrixTests.dSYM/Contents/Info.plist new file mode 100644 index 0000000..53f0f1a --- /dev/null +++ b/runMatrixTests.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.runMatrixTests + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/runMatrixTests.dSYM/Contents/Resources/DWARF/runMatrixTests b/runMatrixTests.dSYM/Contents/Resources/DWARF/runMatrixTests new file mode 100644 index 0000000000000000000000000000000000000000..820a9e9d12d9c438277ccbb6ef2db94cb109da47 GIT binary patch literal 42725 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 + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.runNeuralNetworkTests + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/runNeuralNetworkTests.dSYM/Contents/Resources/DWARF/runNeuralNetworkTests b/runNeuralNetworkTests.dSYM/Contents/Resources/DWARF/runNeuralNetworkTests new file mode 100644 index 0000000000000000000000000000000000000000..4de33b71361fc3a4a182523727fd2418df06572b GIT binary patch literal 51521 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 literal 0 HcmV?d00001 diff --git a/runNeuralNetworkTests.dSYM/Contents/Resources/Relocations/x86_64/runNeuralNetworkTests.yml b/runNeuralNetworkTests.dSYM/Contents/Resources/Relocations/x86_64/runNeuralNetworkTests.yml new file mode 100644 index 0000000..8e2f955 --- /dev/null +++ b/runNeuralNetworkTests.dSYM/Contents/Resources/Relocations/x86_64/runNeuralNetworkTests.yml @@ -0,0 +1,129 @@ +--- +triple: 'x86_64-apple-darwin' +binary-path: runNeuralNetworkTests +relocations: + - { offset: 0x26, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectNumberOfLayers, symObjAddr: 0x0, symBinAddr: 0x100000FD0, symSize: 0x250 } + - { offset: 0x5E, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectNumberOfLayers, symObjAddr: 0x0, symBinAddr: 0x100000FD0, symSize: 0x250 } + - { offset: 0x126, size: 0x8, addend: 0x0, symName: _prepareNeuralNetworkFile, symObjAddr: 0x250, symBinAddr: 0x100001220, symSize: 0x150 } + - { offset: 0x1CA, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectWeightDimensions, symObjAddr: 0x3A0, symBinAddr: 0x100001370, symSize: 0x1F0 } + - { offset: 0x256, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectBiasDimensions, symObjAddr: 0x590, symBinAddr: 0x100001560, symSize: 0x1F0 } + - { offset: 0x2E2, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectWeights, symObjAddr: 0x780, symBinAddr: 0x100001750, symSize: 0x240 } + - { offset: 0x37D, size: 0x8, addend: 0x0, symName: _test_loadModelReturnsCorrectBiases, symObjAddr: 0x9C0, symBinAddr: 0x100001990, symSize: 0x240 } + - { offset: 0x418, size: 0x8, addend: 0x0, symName: _test_loadModelFailsOnWrongFileTag, symObjAddr: 0xC00, symBinAddr: 0x100001BD0, symSize: 0xE0 } + - { offset: 0x474, size: 0x8, addend: 0x0, symName: _test_clearModelSetsMembersToNull, symObjAddr: 0xCE0, symBinAddr: 0x100001CB0, symSize: 0x230 } + - { offset: 0x500, size: 0x8, addend: 0x0, symName: _test_predictReturnsCorrectLabels, symObjAddr: 0xF10, symBinAddr: 0x100001EE0, symSize: 0x3B0 } + - { offset: 0x641, size: 0x8, addend: 0x0, symName: _someActivation, symObjAddr: 0x12C0, symBinAddr: 0x100002290, symSize: 0x70 } + - { offset: 0x681, size: 0x8, addend: 0x0, symName: _setUp, symObjAddr: 0x1330, symBinAddr: 0x100002300, symSize: 0x10 } + - { offset: 0x696, size: 0x8, addend: 0x0, symName: _tearDown, symObjAddr: 0x1340, symBinAddr: 0x100002310, symSize: 0x10 } + - { offset: 0x6AB, size: 0x8, addend: 0x0, symName: _main, symObjAddr: 0x1350, symBinAddr: 0x100002320, symSize: 0xF4 } + - { offset: 0xA85, size: 0x8, addend: 0x0, symName: _createMatrix, symObjAddr: 0x0, symBinAddr: 0x100002420, symSize: 0x90 } + - { offset: 0xA92, size: 0x8, addend: 0x0, symName: _createMatrix, symObjAddr: 0x0, symBinAddr: 0x100002420, symSize: 0x90 } + - { offset: 0xAD6, size: 0x8, addend: 0x0, symName: _clearMatrix, symObjAddr: 0x90, symBinAddr: 0x1000024B0, symSize: 0x50 } + - { offset: 0xAFA, size: 0x8, addend: 0x0, symName: _setMatrixAt, symObjAddr: 0xE0, symBinAddr: 0x100002500, symSize: 0x60 } + - { offset: 0xB48, size: 0x8, addend: 0x0, symName: _getMatrixAt, symObjAddr: 0x140, symBinAddr: 0x100002560, symSize: 0x70 } + - { offset: 0xB8C, size: 0x8, addend: 0x0, symName: _add, symObjAddr: 0x1B0, symBinAddr: 0x1000025D0, symSize: 0x230 } + - { offset: 0xC70, size: 0x8, addend: 0x0, symName: _multiply, symObjAddr: 0x3E0, symBinAddr: 0x100002800, symSize: 0x14C } + - { offset: 0xDAA, size: 0x8, addend: 0x0, symName: _loadModel, symObjAddr: 0x0, symBinAddr: 0x100002950, symSize: 0x190 } + - { offset: 0xE8C, size: 0x8, addend: 0x0, symName: _loadModel, symObjAddr: 0x0, symBinAddr: 0x100002950, symSize: 0x190 } + - { offset: 0xF26, size: 0x8, addend: 0x0, symName: _checkFileHeader, symObjAddr: 0x190, symBinAddr: 0x100002AE0, symSize: 0xD0 } + - { offset: 0xF7C, size: 0x8, addend: 0x0, symName: _readDimension, symObjAddr: 0x260, symBinAddr: 0x100002BB0, symSize: 0x50 } + - { offset: 0xFB2, size: 0x8, addend: 0x0, symName: _readLayer, symObjAddr: 0x2B0, symBinAddr: 0x100002C00, symSize: 0x80 } + - { offset: 0x1005, size: 0x8, addend: 0x0, symName: _isEmptyLayer, symObjAddr: 0x330, symBinAddr: 0x100002C80, symSize: 0x80 } + - { offset: 0x102D, size: 0x8, addend: 0x0, symName: _clearLayer, symObjAddr: 0x3B0, symBinAddr: 0x100002D00, symSize: 0x40 } + - { offset: 0x1051, size: 0x8, addend: 0x0, symName: _clearModel, symObjAddr: 0x3F0, symBinAddr: 0x100002D40, symSize: 0x70 } + - { offset: 0x1094, size: 0x8, addend: 0x0, symName: _assignActivations, symObjAddr: 0x460, symBinAddr: 0x100002DB0, symSize: 0x80 } + - { offset: 0x10D4, size: 0x8, addend: 0x0, symName: _argmax, symObjAddr: 0x4E0, symBinAddr: 0x100002E30, symSize: 0x110 } + - { offset: 0x1142, size: 0x8, addend: 0x0, symName: _predict, symObjAddr: 0x5F0, symBinAddr: 0x100002F40, symSize: 0x70 } + - { offset: 0x11B1, size: 0x8, addend: 0x0, symName: _imageBatchToMatrixOfImageVectors, symObjAddr: 0x660, symBinAddr: 0x100002FB0, symSize: 0x120 } + - { offset: 0x122D, size: 0x8, addend: 0x0, symName: _forward, symObjAddr: 0x780, symBinAddr: 0x1000030D0, symSize: 0x140 } + - { offset: 0x12B9, size: 0x8, addend: 0x0, symName: _readMatrix, symObjAddr: 0x8C0, symBinAddr: 0x100003210, symSize: 0x80 } + - { offset: 0x130B, size: 0x8, addend: 0x0, symName: _relu, symObjAddr: 0x940, symBinAddr: 0x100003290, symSize: 0xA0 } + - { offset: 0x134B, size: 0x8, addend: 0x0, symName: _softmax, symObjAddr: 0x9E0, symBinAddr: 0x100003330, symSize: 0x197 } + - { offset: 0x16D7, size: 0x8, addend: 0x0, symName: _UnityPrint, symObjAddr: 0x0, symBinAddr: 0x1000034D0, symSize: 0x60 } + - { offset: 0x16F0, size: 0x8, addend: 0x0, symName: _UnityStrOk, symObjAddr: 0x4390, symBinAddr: 0x100007A50, symSize: 0x0 } + - { offset: 0x1724, size: 0x8, addend: 0x0, symName: _UnityStrPass, symObjAddr: 0x4393, symBinAddr: 0x100007A53, symSize: 0x0 } + - { offset: 0x1745, size: 0x8, addend: 0x0, symName: _UnityStrFail, symObjAddr: 0x4398, symBinAddr: 0x100007A58, symSize: 0x0 } + - { offset: 0x175A, size: 0x8, addend: 0x0, symName: _UnityStrIgnore, symObjAddr: 0x439D, symBinAddr: 0x100007A5D, symSize: 0x0 } + - { offset: 0x177B, size: 0x8, addend: 0x0, symName: _UnityStrErrShorthand, symObjAddr: 0x43B0, symBinAddr: 0x100007A70, symSize: 0x0 } + - { offset: 0x179C, size: 0x8, addend: 0x0, symName: _UnityStrErrFloat, symObjAddr: 0x43E0, symBinAddr: 0x100007AA0, symSize: 0x0 } + - { offset: 0x17BD, size: 0x8, addend: 0x0, symName: _UnityStrErrDouble, symObjAddr: 0x4400, symBinAddr: 0x100007AC0, symSize: 0x0 } + - { offset: 0x17DE, size: 0x8, addend: 0x0, symName: _UnityStrErr64, symObjAddr: 0x4420, symBinAddr: 0x100007AE0, symSize: 0x0 } + - { offset: 0x17F3, size: 0x8, addend: 0x0, symName: _UnityStrErrDetailStack, symObjAddr: 0x4440, symBinAddr: 0x100007B00, symSize: 0x0 } + - { offset: 0x1808, size: 0x8, addend: 0x0, symName: _UnityPrintFloat, symObjAddr: 0x5D0, symBinAddr: 0x100003AA0, symSize: 0x6D0 } + - { offset: 0x182B, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.sig_digits, symObjAddr: 0x4464, symBinAddr: 0x100007B24, symSize: 0x0 } + - { offset: 0x1841, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.min_scaled, symObjAddr: 0x4468, symBinAddr: 0x100007B28, symSize: 0x0 } + - { offset: 0x1857, size: 0x8, addend: 0x0, symName: _UnityPrintFloat.max_scaled, symObjAddr: 0x446C, symBinAddr: 0x100007B2C, symSize: 0x0 } + - { offset: 0x1A27, size: 0x8, addend: 0x0, symName: _Unity, symBinAddr: 0x100009008, symSize: 0x0 } + - { offset: 0x1B0F, size: 0x8, addend: 0x0, symName: _UnityQuickCompare, symObjAddr: 0xAE68, symBinAddr: 0x100009000, symSize: 0x0 } + - { offset: 0x1BA8, size: 0x8, addend: 0x0, symName: _UnityStrExpected, symObjAddr: 0x4470, symBinAddr: 0x100007B30, symSize: 0x0 } + - { offset: 0x1BC9, size: 0x8, addend: 0x0, symName: _UnityStrWas, symObjAddr: 0x447B, symBinAddr: 0x100007B3B, symSize: 0x0 } + - { offset: 0x1BEA, size: 0x8, addend: 0x0, symName: _UnityStrSpacer, symObjAddr: 0x4605, symBinAddr: 0x100007CC5, symSize: 0x0 } + - { offset: 0x1BFF, size: 0x8, addend: 0x0, symName: _UnityStrDetail1Name, symObjAddr: 0x4608, symBinAddr: 0x100007CC8, symSize: 0x0 } + - { offset: 0x1C20, size: 0x8, addend: 0x0, symName: _UnityStrDetail2Name, symObjAddr: 0x4612, symBinAddr: 0x100007CD2, symSize: 0x0 } + - { offset: 0x1C35, size: 0x8, addend: 0x0, symName: _UnityStrGt, symObjAddr: 0x4490, symBinAddr: 0x100007B50, symSize: 0x0 } + - { offset: 0x1C56, size: 0x8, addend: 0x0, symName: _UnityStrLt, symObjAddr: 0x44B0, symBinAddr: 0x100007B70, symSize: 0x0 } + - { offset: 0x1C77, size: 0x8, addend: 0x0, symName: _UnityStrOrEqual, symObjAddr: 0x44C2, symBinAddr: 0x100007B82, symSize: 0x0 } + - { offset: 0x1C98, size: 0x8, addend: 0x0, symName: _UnityStrNotEqual, symObjAddr: 0x44D0, symBinAddr: 0x100007B90, symSize: 0x0 } + - { offset: 0x1CAD, size: 0x8, addend: 0x0, symName: _UnityStrPointless, symObjAddr: 0x44F0, symBinAddr: 0x100007BB0, symSize: 0x0 } + - { offset: 0x1CCE, size: 0x8, addend: 0x0, symName: _UnityStrNullPointerForExpected, symObjAddr: 0x4620, symBinAddr: 0x100007CE0, symSize: 0x0 } + - { offset: 0x1CEF, size: 0x8, addend: 0x0, symName: _UnityStrNullPointerForActual, symObjAddr: 0x4640, symBinAddr: 0x100007D00, symSize: 0x0 } + - { offset: 0x1D10, size: 0x8, addend: 0x0, symName: _UnityStrElement, symObjAddr: 0x4527, symBinAddr: 0x100007BE7, symSize: 0x0 } + - { offset: 0x1D25, size: 0x8, addend: 0x0, symName: _UnityStrInf, symObjAddr: 0x4531, symBinAddr: 0x100007BF1, symSize: 0x0 } + - { offset: 0x1D46, size: 0x8, addend: 0x0, symName: _UnityStrNegInf, symObjAddr: 0x4540, symBinAddr: 0x100007C00, symSize: 0x0 } + - { offset: 0x1D5B, size: 0x8, addend: 0x0, symName: _UnityStrNaN, symObjAddr: 0x4552, symBinAddr: 0x100007C12, symSize: 0x0 } + - { offset: 0x1D7C, size: 0x8, addend: 0x0, symName: _UnityStrDet, symObjAddr: 0x4556, symBinAddr: 0x100007C16, symSize: 0x0 } + - { offset: 0x1D9D, size: 0x8, addend: 0x0, symName: _UnityStrInvalidFloatTrait, symObjAddr: 0x4570, symBinAddr: 0x100007C30, symSize: 0x0 } + - { offset: 0x1DBE, size: 0x8, addend: 0x0, symName: _UnityStrNot, symObjAddr: 0x4584, symBinAddr: 0x100007C44, symSize: 0x0 } + - { offset: 0x1DD3, size: 0x8, addend: 0x0, symName: _UnityStrDelta, symObjAddr: 0x4590, symBinAddr: 0x100007C50, symSize: 0x0 } + - { offset: 0x1DF4, size: 0x8, addend: 0x0, symName: _UnityStrNull, symObjAddr: 0x4659, symBinAddr: 0x100007D19, symSize: 0x0 } + - { offset: 0x1E09, size: 0x8, addend: 0x0, symName: _UnityStrMemory, symObjAddr: 0x45B0, symBinAddr: 0x100007C70, symSize: 0x0 } + - { offset: 0x1E1E, size: 0x8, addend: 0x0, symName: _UnityStrByte, symObjAddr: 0x45C2, symBinAddr: 0x100007C82, symSize: 0x0 } + - { offset: 0x1E33, size: 0x8, addend: 0x0, symName: _UnityStrBreaker, symObjAddr: 0x45D0, symBinAddr: 0x100007C90, symSize: 0x0 } + - { offset: 0x1E54, size: 0x8, addend: 0x0, symName: _UnityStrResultsTests, symObjAddr: 0x45E8, symBinAddr: 0x100007CA8, symSize: 0x0 } + - { offset: 0x1E75, size: 0x8, addend: 0x0, symName: _UnityStrResultsFailures, symObjAddr: 0x45F0, symBinAddr: 0x100007CB0, symSize: 0x0 } + - { offset: 0x1E8A, size: 0x8, addend: 0x0, symName: _UnityStrResultsIgnored, symObjAddr: 0x45FB, symBinAddr: 0x100007CBB, symSize: 0x0 } + - { offset: 0x2003, size: 0x8, addend: 0x0, symName: _UnityPrint, symObjAddr: 0x0, symBinAddr: 0x1000034D0, symSize: 0x60 } + - { offset: 0x2035, size: 0x8, addend: 0x0, symName: _UnityPrintChar, symObjAddr: 0x60, symBinAddr: 0x100003530, symSize: 0xD0 } + - { offset: 0x2059, size: 0x8, addend: 0x0, symName: _UnityPrintLen, symObjAddr: 0x130, symBinAddr: 0x100003600, symSize: 0x130 } + - { offset: 0x2099, size: 0x8, addend: 0x0, symName: _UnityPrintNumberHex, symObjAddr: 0x260, symBinAddr: 0x100003730, symSize: 0x90 } + - { offset: 0x20EC, size: 0x8, addend: 0x0, symName: _UnityPrintIntNumberByStyle, symObjAddr: 0x2F0, symBinAddr: 0x1000037C0, symSize: 0x100 } + - { offset: 0x211E, size: 0x8, addend: 0x0, symName: _UnityPrintNumber, symObjAddr: 0x3F0, symBinAddr: 0x1000038C0, symSize: 0x50 } + - { offset: 0x2150, size: 0x8, addend: 0x0, symName: _UnityPrintUintNumberByStyle, symObjAddr: 0x440, symBinAddr: 0x100003910, symSize: 0x60 } + - { offset: 0x2182, size: 0x8, addend: 0x0, symName: _UnityPrintNumberUnsigned, symObjAddr: 0x4A0, symBinAddr: 0x100003970, symSize: 0x90 } + - { offset: 0x21B7, size: 0x8, addend: 0x0, symName: _UnityPrintMask, symObjAddr: 0x530, symBinAddr: 0x100003A00, symSize: 0xA0 } + - { offset: 0x229A, size: 0x8, addend: 0x0, symName: _UnityConcludeTest, symObjAddr: 0xCA0, symBinAddr: 0x100004170, symSize: 0xC0 } + - { offset: 0x22B0, size: 0x8, addend: 0x0, symName: _UnityTestResultsBegin, symObjAddr: 0xD60, symBinAddr: 0x100004230, symSize: 0x60 } + - { offset: 0x22E5, size: 0x8, addend: 0x0, symName: _UnityAssertBits, symObjAddr: 0xDC0, symBinAddr: 0x100004290, symSize: 0xE0 } + - { offset: 0x2347, size: 0x8, addend: 0x0, symName: _UnityTestResultsFailBegin, symObjAddr: 0xEA0, symBinAddr: 0x100004370, symSize: 0x40 } + - { offset: 0x236D, size: 0x8, addend: 0x0, symName: _UnityAddMsgIfSpecified, symObjAddr: 0xEE0, symBinAddr: 0x1000043B0, symSize: 0xA0 } + - { offset: 0x2393, size: 0x8, addend: 0x0, symName: _UnityAssertEqualIntNumber, symObjAddr: 0xF80, symBinAddr: 0x100004450, symSize: 0xD0 } + - { offset: 0x23F5, size: 0x8, addend: 0x0, symName: _UnityAssertEqualUintNumber, symObjAddr: 0x1050, symBinAddr: 0x100004520, symSize: 0xD0 } + - { offset: 0x2457, size: 0x8, addend: 0x0, symName: _UnityAssertIntGreaterOrLessOrEqualNumber, symObjAddr: 0x1120, symBinAddr: 0x1000045F0, symSize: 0x1A0 } + - { offset: 0x24D7, size: 0x8, addend: 0x0, symName: _UnityAssertUintGreaterOrLessOrEqualNumber, symObjAddr: 0x12C0, symBinAddr: 0x100004790, symSize: 0x1A0 } + - { offset: 0x2557, size: 0x8, addend: 0x0, symName: _UnityAssertEqualIntArray, symObjAddr: 0x1460, symBinAddr: 0x100004930, symSize: 0x3C0 } + - { offset: 0x264F, size: 0x8, addend: 0x0, symName: _UnityIsOneArrayNull, symObjAddr: 0x1820, symBinAddr: 0x100004CF0, symSize: 0xB0 } + - { offset: 0x26A6, size: 0x8, addend: 0x0, symName: _UnityAssertWithinFloatArray, symObjAddr: 0x18D0, symBinAddr: 0x100004DA0, symSize: 0x460 } + - { offset: 0x2830, size: 0x8, addend: 0x0, symName: _UnityFloatsWithin, symObjAddr: 0x1D30, symBinAddr: 0x100005200, symSize: 0x5F0 } + - { offset: 0x2AB4, size: 0x8, addend: 0x0, symName: _UnityAssertFloatsWithin, symObjAddr: 0x2320, symBinAddr: 0x1000057F0, symSize: 0xE0 } + - { offset: 0x2B16, size: 0x8, addend: 0x0, symName: _UnityAssertFloatsNotWithin, symObjAddr: 0x2400, symBinAddr: 0x1000058D0, symSize: 0xE0 } + - { offset: 0x2B78, size: 0x8, addend: 0x0, symName: _UnityAssertGreaterOrLessFloat, symObjAddr: 0x24E0, symBinAddr: 0x1000059B0, symSize: 0x1A0 } + - { offset: 0x2BE9, size: 0x8, addend: 0x0, symName: _UnityAssertFloatSpecial, symObjAddr: 0x2680, symBinAddr: 0x100005B50, symSize: 0x600 } + - { offset: 0x2DD3, size: 0x8, addend: 0x0, symName: _UnityAssertIntNumbersWithin, symObjAddr: 0x2C80, symBinAddr: 0x100006150, symSize: 0x150 } + - { offset: 0x2E44, size: 0x8, addend: 0x0, symName: _UnityAssertUintNumbersWithin, symObjAddr: 0x2DD0, symBinAddr: 0x1000062A0, symSize: 0x150 } + - { offset: 0x2EB5, size: 0x8, addend: 0x0, symName: _UnityAssertNumbersArrayWithin, symObjAddr: 0x2F20, symBinAddr: 0x1000063F0, symSize: 0x4E0 } + - { offset: 0x2FBD, size: 0x8, addend: 0x0, symName: _UnityAssertEqualString, symObjAddr: 0x3400, symBinAddr: 0x1000068D0, symSize: 0x180 } + - { offset: 0x301F, size: 0x8, addend: 0x0, symName: _UnityPrintExpectedAndActualStrings, symObjAddr: 0x3580, symBinAddr: 0x100006A50, symSize: 0xA0 } + - { offset: 0x3054, size: 0x8, addend: 0x0, symName: _UnityAssertEqualStringLen, symObjAddr: 0x3620, symBinAddr: 0x100006AF0, symSize: 0x1A0 } + - { offset: 0x30C5, size: 0x8, addend: 0x0, symName: _UnityPrintExpectedAndActualStringsLen, symObjAddr: 0x37C0, symBinAddr: 0x100006C90, symSize: 0xB0 } + - { offset: 0x3109, size: 0x8, addend: 0x0, symName: _UnityAssertEqualStringArray, symObjAddr: 0x3870, symBinAddr: 0x100006D40, symSize: 0x2B0 } + - { offset: 0x31B7, size: 0x8, addend: 0x0, symName: _UnityAssertEqualMemory, symObjAddr: 0x3B20, symBinAddr: 0x100006FF0, symSize: 0x2A0 } + - { offset: 0x3273, size: 0x8, addend: 0x0, symName: _UnityNumToPtr, symObjAddr: 0x3DC0, symBinAddr: 0x100007290, symSize: 0xB0 } + - { offset: 0x32AC, size: 0x8, addend: 0x0, symName: _UnityFloatToPtr, symObjAddr: 0x3E70, symBinAddr: 0x100007340, symSize: 0x20 } + - { offset: 0x32D6, size: 0x8, addend: 0x0, symName: _UnityFail, symObjAddr: 0x3E90, symBinAddr: 0x100007360, symSize: 0xA0 } + - { offset: 0x330B, size: 0x8, addend: 0x0, symName: _UnityIgnore, symObjAddr: 0x3F30, symBinAddr: 0x100007400, symSize: 0xC0 } + - { offset: 0x3340, size: 0x8, addend: 0x0, symName: _UnityMessage, symObjAddr: 0x3FF0, symBinAddr: 0x1000074C0, symSize: 0x70 } + - { offset: 0x3375, size: 0x8, addend: 0x0, symName: _UnityDefaultTestRun, symObjAddr: 0x4060, symBinAddr: 0x100007530, symSize: 0xD0 } + - { offset: 0x33B9, size: 0x8, addend: 0x0, symName: _UnitySetTestFile, symObjAddr: 0x4130, symBinAddr: 0x100007600, symSize: 0x20 } + - { offset: 0x33DF, size: 0x8, addend: 0x0, symName: _UnityBegin, symObjAddr: 0x4150, symBinAddr: 0x100007620, symSize: 0xA0 } + - { offset: 0x3405, size: 0x8, addend: 0x0, symName: _UnityEnd, symObjAddr: 0x41F0, symBinAddr: 0x1000076C0, symSize: 0xC8 } +... -- 2.47.2