author | saurabh.vyas@oracle.com |
Wed, 27 Jan 2016 09:13:52 -0800 | |
changeset 5350 | 0bd2e97a57c6 |
parent 4855 | 0057a9ea6dcb |
permissions | -rw-r--r-- |
4855
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
1 |
# Known bug in GDB < 7.8: |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
2 |
# https://sourceware.org/bugzilla/show_bug.cgi?id=16215 |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
3 |
# Backported to GDB 7.6 until we upgrade to GDB 7.9. |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
4 |
# Without this patch, we get spurious errors debugging on SPARC, |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
5 |
# especially with GCC >= 4.9.0. |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
6 |
--- gdb-7.6/gdb/dwarf2-frame.c 2013-01-31 10:31:48.000000000 -0800 |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
7 |
+++ gdb-7.6/gdb/dwarf2-frame.c 2015-09-09 16:07:52.767075883 -0700 |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
8 |
@@ -1497,16 +1497,12 @@ |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
9 |
{ |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
10 |
while (get_frame_type (this_frame) == INLINE_FRAME) |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
11 |
this_frame = get_prev_frame (this_frame); |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
12 |
- /* This restriction could be lifted if other unwinders are known to |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
13 |
- compute the frame base in a way compatible with the DWARF |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
14 |
- unwinder. */ |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
15 |
- if (!frame_unwinder_is (this_frame, &dwarf2_frame_unwind) |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
16 |
- && !frame_unwinder_is (this_frame, &dwarf2_tailcall_frame_unwind)) |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
17 |
- error (_("can't compute CFA for this frame")); |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
18 |
+ |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
19 |
if (get_frame_unwind_stop_reason (this_frame) == UNWIND_UNAVAILABLE) |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
20 |
throw_error (NOT_AVAILABLE_ERROR, |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
21 |
_("can't compute CFA for this frame: " |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
22 |
"required registers or memory are unavailable")); |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
23 |
+ |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
24 |
return get_frame_base (this_frame); |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
25 |
} |
0057a9ea6dcb
21813290 gdb: can't compute CFA for this frame (SPARC)
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff
changeset
|
26 |