mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00:00
show git commit id in window title & fatal exception dialog
This commit is contained in:
committed by
Ryan Fleury
parent
816bf195c2
commit
9c02f947c7
@@ -84,6 +84,9 @@ pushd build
|
|||||||
%rc% /nologo /fo logo.res ..\data\logo.rc || exit /b 1
|
%rc% /nologo /fo logo.res ..\data\logo.rc || exit /b 1
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
:: --- Get Current Git Commit Id ----------------------------------------------
|
||||||
|
for /f %%i in ('call git describe --always --dirty') do set compile=%compile% -DRADDBG_GIT=\"%%i\"
|
||||||
|
|
||||||
:: --- Build & Run Metaprogram ------------------------------------------------
|
:: --- Build & Run Metaprogram ------------------------------------------------
|
||||||
if "%no_meta%"=="1" echo [skipping metagen]
|
if "%no_meta%"=="1" echo [skipping metagen]
|
||||||
if not "%no_meta%"=="1" (
|
if not "%no_meta%"=="1" (
|
||||||
|
|||||||
+8
-2
@@ -405,10 +405,16 @@
|
|||||||
#define RADDBG_VERSION_PATCH 8
|
#define RADDBG_VERSION_PATCH 8
|
||||||
#define RADDBG_VERSION_STRING_LITERAL Stringify(RADDBG_VERSION_MAJOR) "." Stringify(RADDBG_VERSION_MINOR) "." Stringify(RADDBG_VERSION_PATCH)
|
#define RADDBG_VERSION_STRING_LITERAL Stringify(RADDBG_VERSION_MAJOR) "." Stringify(RADDBG_VERSION_MINOR) "." Stringify(RADDBG_VERSION_PATCH)
|
||||||
#if defined(NDEBUG)
|
#if defined(NDEBUG)
|
||||||
# define RADDBG_TITLE_STRING_LITERAL "The RAD Debugger (" RADDBG_VERSION_STRING_LITERAL " ALPHA) - " __DATE__ ""
|
# define RADDBG_BUILD_STR ""
|
||||||
#else
|
#else
|
||||||
# define RADDBG_TITLE_STRING_LITERAL "The RAD Debugger (" RADDBG_VERSION_STRING_LITERAL " ALPHA) - " __DATE__ " [Debug]"
|
# define RADDBG_BUILD_STR " [Debug]"
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(RADDBG_GIT)
|
||||||
|
# define RADDBG_GIT_STR " [" RADDBG_GIT "]"
|
||||||
|
#else
|
||||||
|
# define RADDBG_GIT_STR ""
|
||||||
|
#endif
|
||||||
|
#define RADDBG_TITLE_STRING_LITERAL "The RAD Debugger (" RADDBG_VERSION_STRING_LITERAL " ALPHA) - " __DATE__ "" RADDBG_GIT_STR RADDBG_BUILD_STR
|
||||||
#define RADDBG_GITHUB_ISSUES "https://github.com/EpicGames/raddebugger/issues"
|
#define RADDBG_GITHUB_ISSUES "https://github.com/EpicGames/raddebugger/issues"
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|||||||
+11
-12
@@ -132,7 +132,7 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
int buflen = 0;
|
int buflen = 0;
|
||||||
|
|
||||||
DWORD exception_code = exception_ptrs->ExceptionRecord->ExceptionCode;
|
DWORD exception_code = exception_ptrs->ExceptionRecord->ExceptionCode;
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L"A fatal exception (code 0x%x) occurred. The process is terminating.\n", exception_code);
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"A fatal exception (code 0x%x) occurred. The process is terminating.\n", exception_code);
|
||||||
|
|
||||||
// load dbghelp dynamically just in case if it is missing
|
// load dbghelp dynamically just in case if it is missing
|
||||||
HMODULE dbghelp = LoadLibraryA("dbghelp.dll");
|
HMODULE dbghelp = LoadLibraryA("dbghelp.dll");
|
||||||
@@ -213,7 +213,7 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
const U32 max_frames = 32;
|
const U32 max_frames = 32;
|
||||||
if(idx == max_frames)
|
if(idx == max_frames)
|
||||||
{
|
{
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L"...");
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"...");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,13 +230,13 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
|
|
||||||
if(idx==0)
|
if(idx==0)
|
||||||
{
|
{
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen,
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen,
|
||||||
L"\nPress Ctrl+C to copy this text to clipboard, then create a new issue in\n"
|
L"\nPress Ctrl+C to copy this text to clipboard, then create a new issue in\n"
|
||||||
L"<a href=\"%S\">%S</a>\n\n", RADDBG_GITHUB_ISSUES, RADDBG_GITHUB_ISSUES);
|
L"<a href=\"%S\">%S</a>\n\n", RADDBG_GITHUB_ISSUES, RADDBG_GITHUB_ISSUES);
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L"Call stack:\n");
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"Call stack:\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L"%u. [0x%I64x]", idx, address);
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"%u. [0x%I64x]", idx + 1, address);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
SYMBOL_INFOW info;
|
SYMBOL_INFOW info;
|
||||||
@@ -249,7 +249,7 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
DWORD64 displacement = 0;
|
DWORD64 displacement = 0;
|
||||||
if(dbg_SymFromAddrW(process, address, &displacement, &symbol.info))
|
if(dbg_SymFromAddrW(process, address, &displacement, &symbol.info))
|
||||||
{
|
{
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L" %s +%u", symbol.info.Name, (DWORD)displacement);
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s +%u", symbol.info.Name, (DWORD)displacement);
|
||||||
|
|
||||||
IMAGEHLP_LINEW64 line = {0};
|
IMAGEHLP_LINEW64 line = {0};
|
||||||
line.SizeOfStruct = sizeof(line);
|
line.SizeOfStruct = sizeof(line);
|
||||||
@@ -257,7 +257,7 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
DWORD line_displacement = 0;
|
DWORD line_displacement = 0;
|
||||||
if(dbg_SymGetLineFromAddrW64(process, address, &line_displacement, &line))
|
if(dbg_SymGetLineFromAddrW64(process, address, &line_displacement, &line))
|
||||||
{
|
{
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L", %s line %u", PathFindFileNameW(line.FileName), line.LineNumber);
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L", %s line %u", PathFindFileNameW(line.FileName), line.LineNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -266,19 +266,18 @@ win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs)
|
|||||||
module.SizeOfStruct = sizeof(module);
|
module.SizeOfStruct = sizeof(module);
|
||||||
if(dbg_SymGetModuleInfoW64(process, address, &module))
|
if(dbg_SymGetModuleInfoW64(process, address, &module))
|
||||||
{
|
{
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L" %s", module.ModuleName);
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s", module.ModuleName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, L"\n");
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove last newline
|
buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nVersion: %S%S", RADDBG_VERSION_STRING_LITERAL, RADDBG_GIT_STR);
|
||||||
buffer[buflen] = 0;
|
|
||||||
|
|
||||||
TASKDIALOGCONFIG dialog = {0};
|
TASKDIALOGCONFIG dialog = {0};
|
||||||
dialog.cbSize = sizeof(dialog);
|
dialog.cbSize = sizeof(dialog);
|
||||||
|
|||||||
Reference in New Issue
Block a user