summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2008-06-03 03:04:41 +0000
committerJames Bursa <james@netsurf-browser.org>2008-06-03 03:04:41 +0000
commit86e74c970bb29c0a31d0235cf6b9ab261fffbad5 (patch)
treea8d482c4d19fc990ea2bfd48c9d1c62d336a5a80 /riscos
parent8282253a5415263e2385d47d9416a611a00eea0f (diff)
downloadnetsurf-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
Diffstat (limited to 'riscos')
-rw-r--r--riscos/gui.c19
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