diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-18 11:45:43 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-18 11:45:43 +0000 |
commit | 8f6cfc7dc436f084353cadb8ec1358257947eeea (patch) | |
tree | a79d211a16707895fcf659fbb914c5a4f8445148 /crawl-ref/source/libunix.cc | |
parent | 35b66c2f1cc59a4cb48419c10905d61197806f32 (diff) | |
download | crawl-ref-8f6cfc7dc436f084353cadb8ec1358257947eeea.tar.gz crawl-ref-8f6cfc7dc436f084353cadb8ec1358257947eeea.zip |
Limit crash handling recursion to being commented upon just once.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8544 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/libunix.cc')
-rw-r--r-- | crawl-ref/source/libunix.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/crawl-ref/source/libunix.cc b/crawl-ref/source/libunix.cc index 4770ac961e..8c26e5842b 100644 --- a/crawl-ref/source/libunix.cc +++ b/crawl-ref/source/libunix.cc @@ -1145,12 +1145,17 @@ extern "C" { ///////////////////////////////////////////////////////////////////////////// // Code for printing out debugging info on a crash. //////////////////////////////////////////////////////////////////////////// -static int _crash_signal = 0; +static int _crash_signal = 0; +static int _recursion_depth = 0; static void _crash_signal_handler(int sig_num) { if (crawl_state.game_crashed) { + if (_recursion_depth > 0) + return; + _recursion_depth++; + fprintf(stderr, "Recursive crash." EOL); std::string dir = (!Options.morgue_dir.empty() ? Options.morgue_dir : |