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-main | |
| 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-main')
| -rw-r--r-- | examples/example-main/main.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/example-main/main.cpp b/examples/example-main/main.cpp new file mode 100644 index 000000000..46ffc7278 --- /dev/null +++ b/examples/example-main/main.cpp @@ -0,0 +1,32 @@ +#include "../stacktrace-windows/common.h" + +#include <stdio.h> +#include <stdlib.h> + +extern int exampleMain(int argc, char** argv); + +#if defined(_WIN32) + +#include <windows.h> + +int main(int argc, char** argv) +{ + __try + { + return exampleMain(argc, argv); + } + __except (exceptionFilter(stdout, GetExceptionInformation())) + { + ::exit(1); + } +} + +#else // defined(_WIN32) + +int main(int argc, char** argv) +{ + // TODO: Catch exception and print stack trace also on non-Windows platforms. + return exampleMain(argc, argv); +} + +#endif |
