diff options
| author | Anders Leino <aleino@nvidia.com> | 2025-01-08 08:30:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-07 22:30:18 -0800 |
| commit | 5b9931456f595b0a2163fabb65dceac99e0e220f (patch) | |
| tree | 1329b9bdb3fd77349e6a03dc4d2d1c34251f219b /examples/example-winmain | |
| parent | c43f6fa55aca23365c86c6ec1737d42be74d9d3e (diff) | |
Add backtraces to examples (#5973)
* examples: Log stack trace on exceptions
For now, this is only implemented on Windows.
This helps to address #5520.
* examples: Print log file if there is any
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'examples/example-winmain')
| -rw-r--r-- | examples/example-winmain/main.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/examples/example-winmain/main.cpp b/examples/example-winmain/main.cpp new file mode 100644 index 000000000..8094e7fc4 --- /dev/null +++ b/examples/example-winmain/main.cpp @@ -0,0 +1,28 @@ +#include "../stacktrace-windows/common.h" + +#include <stdio.h> +#include <stdlib.h> +#include <windows.h> + +extern int exampleMain(int argc, char** argv); +extern const char* const g_logFileName; + +int WinMain( + HINSTANCE /* instance */, + HINSTANCE /* prevInstance */, + LPSTR /* commandLine */, + int /*showCommand*/) + +{ + FILE* logFile = fopen(g_logFileName, "w"); + __try + { + int argc = 0; + char** argv = nullptr; + return exampleMain(argc, argv); + } + __except (exceptionFilter(logFile, GetExceptionInformation())) + { + ::exit(1); + } +} |
