diff options
author | James Bursa <james@netsurf-browser.org> | 2008-06-03 03:04:41 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2008-06-03 03:04:41 +0000 |
commit | 86e74c970bb29c0a31d0235cf6b9ab261fffbad5 (patch) | |
tree | a8d482c4d19fc990ea2bfd48c9d1c62d336a5a80 | |
parent | 8282253a5415263e2385d47d9416a611a00eea0f (diff) | |
download | netsurf-86e74c970bb29c0a31d0235cf6b9ab261fffbad5.tar.gz netsurf-86e74c970bb29c0a31d0235cf6b9ab261fffbad5.tar.bz2 |
Add code to save DA to a file if NetSurf crashes and NetSurf$CoreDump exists.
svn path=/trunk/netsurf/; revision=4247
-rw-r--r-- | riscos/gui.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/riscos/gui.c b/riscos/gui.c index 6e9aa28e6..018cd0d93 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -848,6 +848,25 @@ void ro_gui_signal(int sig) __write_backtrace(sig); + /* save DA to a file if NetSurf$CoreDump exists */ + int used; + xos_read_var_val_size("NetSurf$CoreDump", 0, 0, &used, 0, 0); + if (used) { + extern int __dynamic_num; + if (__dynamic_num != -1) { + int size; + byte *base_address; + xosdynamicarea_read(__dynamic_num, &size, + &base_address, 0, 0, 0, 0, 0); + LOG(("saving DA %i %p %x\n", __dynamic_num, + base_address, size)); + xosfile_save("$.netsurf_core", + (bits) base_address, 0, + base_address, + base_address + size); + } + } + abort(); } /* If we reach here, previous handler was either SIG_IGN or |