summaryrefslogtreecommitdiffstats
path: root/asmrun/stack.h
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2007-01-29 12:11:18 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2007-01-29 12:11:18 +0000
commit4b5512c74cda289652ff53c01098c53a6c4b0c7a (patch)
treea399da8debf50ea772ab38dd11362d1d57cb2c6c /asmrun/stack.h
parent24d7c3c7f7756b8270910ef5c76b409209597dfc (diff)
Stack backtraces on uncaught exceptions in native code (merge of the opt_backtrace branch)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7812 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmrun/stack.h')
-rw-r--r--asmrun/stack.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/asmrun/stack.h b/asmrun/stack.h
index e8d1b5807..913ec4f55 100644
--- a/asmrun/stack.h
+++ b/asmrun/stack.h
@@ -96,6 +96,25 @@ struct caml_context {
value * gc_regs; /* pointer to register block */
};
+/* Structure of frame descriptors */
+
+typedef struct {
+ uintnat retaddr;
+ unsigned short frame_size;
+ unsigned short num_live;
+ unsigned short live_ofs[1];
+} frame_descr;
+
+/* Hash table of frame descriptors */
+
+extern frame_descr ** caml_frame_descriptors;
+extern int caml_frame_descriptors_mask;
+
+#define Hash_retaddr(addr) \
+ (((uintnat)(addr) >> 3) & caml_frame_descriptors_mask)
+
+extern void caml_init_frame_descriptors(void);
+
/* Declaration of variables used in the asm code */
extern char * caml_bottom_of_stack;
extern uintnat caml_last_return_address;