Skip to content

Commit

Permalink
Merge pull request #447 from tmolitor-stud-tu/master
Browse files Browse the repository at this point in the history
Add __crash_info signature and backtrace to report
  • Loading branch information
bamx23 committed Nov 12, 2023
2 parents 8800e5b + f476808 commit 58f4567
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
8 changes: 8 additions & 0 deletions Source/KSCrash/Recording/KSCrashReport.c
Original file line number Diff line number Diff line change
Expand Up @@ -1296,6 +1296,14 @@ static void writeBinaryImage(const KSCrashReportWriter* const writer,
{
writer->addStringElement(writer, KSCrashField_ImageCrashInfoMessage2, image.crashInfoMessage2);
}
if(image.crashInfoBacktrace != NULL)
{
writer->addStringElement(writer, KSCrashField_ImageCrashInfoBacktrace, image.crashInfoBacktrace);
}
if(image.crashInfoSignature != NULL)
{
writer->addStringElement(writer, KSCrashField_ImageCrashInfoSignature, image.crashInfoSignature);
}
}
writer->endContainer(writer);
}
Expand Down
2 changes: 2 additions & 0 deletions Source/KSCrash/Recording/KSCrashReportFields.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,8 @@
#define KSCrashField_ImageRevisionVersion "revision_version"
#define KSCrashField_ImageCrashInfoMessage "crash_info_message"
#define KSCrashField_ImageCrashInfoMessage2 "crash_info_message2"
#define KSCrashField_ImageCrashInfoBacktrace "crash_info_backtrace"
#define KSCrashField_ImageCrashInfoSignature "crash_info_signature"


#pragma mark - Memory -
Expand Down
12 changes: 11 additions & 1 deletion Source/KSCrash/Recording/Tools/KSDynamicLinker.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include "KSPlatformSpecificDefines.h"

#ifndef KSDL_MaxCrashInfoStringLength
#define KSDL_MaxCrashInfoStringLength 1024
#define KSDL_MaxCrashInfoStringLength 4096
#endif

#pragma pack(8)
Expand Down Expand Up @@ -381,6 +381,16 @@ static void getCrashInfo(const struct mach_header* header, KSBinaryImage* buffer
KSLOG_DEBUG("Found second message: %s", crashInfo->message2);
buffer->crashInfoMessage2 = crashInfo->message2;
}
if(isValidCrashInfoMessage(crashInfo->backtrace))
{
KSLOG_DEBUG("Found backtrace: %s", crashInfo->backtrace);
buffer->crashInfoBacktrace = crashInfo->backtrace;
}
if(isValidCrashInfoMessage(crashInfo->signature))
{
KSLOG_DEBUG("Found signature: %s", crashInfo->signature);
buffer->crashInfoSignature = crashInfo->signature;
}
}

int ksdl_imageCount(void)
Expand Down
2 changes: 2 additions & 0 deletions Source/KSCrash/Recording/Tools/KSDynamicLinker.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ typedef struct
uint64_t revisionVersion;
const char* crashInfoMessage;
const char* crashInfoMessage2;
const char* crashInfoBacktrace;
const char* crashInfoSignature;
} KSBinaryImage;

/** Get the number of loaded binary images.
Expand Down

0 comments on commit 58f4567

Please sign in to comment.