aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2expr.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2009-09-02 14:53:57 +0000
committerTom Tromey <tromey@redhat.com>2009-09-02 14:53:57 +0000
commite78022079ce4c50f042bb5287665a4f38704a71b (patch)
tree76c5d22b601a7a3ab15067483733204fe114f9db /gdb/dwarf2expr.h
parentd34089166b3e7b60151752997db33c3f28016349 (diff)
downloadgdb-e78022079ce4c50f042bb5287665a4f38704a71b.zip
gdb-e78022079ce4c50f042bb5287665a4f38704a71b.tar.gz
gdb-e78022079ce4c50f042bb5287665a4f38704a71b.tar.bz2
gdb
* frame.h (frame_unwinder_is): Declare. * frame.c (frame_unwinder_is): New function. * dwarf2loc.c: Include dwarf2-frame.h. (dwarf_expr_frame_cfa): New function. (dwarf2_evaluate_loc_desc): Use it. (needs_frame_frame_cfa): New function. (dwarf2_loc_desc_needs_frame): Use it. * dwarf2expr.h (struct dwarf_expr_context) <get_frame_cfa>: New field. * dwarf2expr.c (execute_stack_op) <DW_OP_call_frame_cfa>: New case. * dwarf2-frame.h (dwarf2_frame_cfa): Declare. * dwarf2-frame.c (no_get_frame_cfa): New function. (execute_stack_op): Use it. (dwarf2_frame_cfa): New function. gdb/testsuite * gdb.dwarf2/callframecfa.exp: New file. * gdb.dwarf2/callframecfa.S: New file.
Diffstat (limited to 'gdb/dwarf2expr.h')
-rw-r--r--gdb/dwarf2expr.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/dwarf2expr.h b/gdb/dwarf2expr.h
index 2306e49..6b3a068 100644
--- a/gdb/dwarf2expr.h
+++ b/gdb/dwarf2expr.h
@@ -55,6 +55,9 @@ struct dwarf_expr_context
expression evaluation is complete. */
void (*get_frame_base) (void *baton, gdb_byte **start, size_t *length);
+ /* Return the CFA for the frame. */
+ CORE_ADDR (*get_frame_cfa) (void *baton);
+
/* Return the thread-local storage address for
DW_OP_GNU_push_tls_address. */
CORE_ADDR (*get_tls_address) (void *baton, CORE_ADDR offset);