|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
2004-06-22 Andrew Cagney <cagney@gnu.org>
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
* rs6000-tdep.c (struct rs6000_framedata): Add field "func_start".
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
(skip_prologue): Delete local variable "orig_pc", use
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
"func_start". Add local variable "num_skip_linux_syscall_insn",
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
use to skip over first half of a GNU/Linux syscall and update
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
"func_start".
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
Index: gdb-6.5/gdb/rs6000-tdep.c
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
--- gdb-6.5.orig/gdb/rs6000-tdep.c 2006-07-11 02:57:24.000000000 -0300
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
+++ gdb-6.5/gdb/rs6000-tdep.c 2006-07-11 12:32:05.000000000 -0300
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
@@ -76,6 +76,7 @@
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
struct rs6000_framedata
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
{
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ CORE_ADDR func_start; /* True function start. */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
int offset; /* total size of frame --- the distance
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
by which we decrement sp to allocate
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
the frame */
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
@@ -905,7 +906,6 @@ store_param_on_stack_p (unsigned long op
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
static CORE_ADDR
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
skip_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct rs6000_framedata *fdata)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
{
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
- CORE_ADDR orig_pc = pc;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
CORE_ADDR last_prologue_pc = pc;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
CORE_ADDR li_found_pc = 0;
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
gdb_byte buf[4];
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
@@ -923,6 +923,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
int minimal_toc_loaded = 0;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
int prev_insn_was_prologue_insn = 1;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
int num_skip_non_prologue_insns = 0;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ int num_skip_ppc64_gnu_linux_syscall_insn = 0;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
int r0_contains_arg = 0;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
const struct bfd_arch_info *arch_info = gdbarch_bfd_arch_info (current_gdbarch);
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
@@ -943,6 +944,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
lim_pc = refine_prologue_limit (pc, lim_pc);
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
memset (fdata, 0, sizeof (struct rs6000_framedata));
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ fdata->func_start = pc;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
fdata->saved_gpr = -1;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
fdata->saved_fpr = -1;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
fdata->saved_vr = -1;
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
@@ -971,6 +973,55 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
break;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
op = extract_signed_integer (buf, 4);
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ /* A PPC64 GNU/Linux system call function is split into two
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ sub-functions: a non-threaded fast-path (__NAME_nocancel)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ which does not use a frame; and a threaded slow-path
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ (Lpseudo_cancel) that does create a frame. Ref:
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ *INDENT-OFF*
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ NAME:
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ SINGLE_THREAD_P
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ bne- .Lpseudo_cancel
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ __NAME_nocancel:
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ li r0,162
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ sc
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ bnslr+
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ b 0x7fe014ef64 <.__syscall_error>
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ Lpseudo_cancel:
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ stdu r1,-128(r1)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ ...
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ *INDENT-ON*
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ Unfortunatly, because the latter case uses a local label (not
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ in the symbol table) a PC in "Lpseudo_cancel" appears to be
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ in "__NAME_nocancel". The following code recognizes this,
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ adjusting FUNC_START to point to where "Lpseudo_cancel"
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ should be, and parsing the prologue sequence as if
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ "Lpseudo_cancel" was the entry point. */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ if (((op & 0xffff0000) == 0x38000000 /* li r0,N */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && pc == fdata->func_start + 0
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && num_skip_ppc64_gnu_linux_syscall_insn == 0)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ || (op == 0x44000002 /* sc */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && pc == fdata->func_start + 4
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && num_skip_ppc64_gnu_linux_syscall_insn == 1)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ || (op == 0x4ca30020 /* bnslr+ */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && pc == fdata->func_start + 8
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && num_skip_ppc64_gnu_linux_syscall_insn == 2))
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ num_skip_ppc64_gnu_linux_syscall_insn++;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ continue;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ else if ((op & 0xfc000003) == 0x48000000 /* b __syscall_error */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && pc == fdata->func_start + 12
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ && num_skip_ppc64_gnu_linux_syscall_insn == 3)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ num_skip_ppc64_gnu_linux_syscall_insn = -1;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ fdata->func_start = pc;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ continue;
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
if ((op & 0xfc1fffff) == 0x7c0802a6)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
{ /* mflr Rx */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
/* Since shared library / PIC code, which needs to get its
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
@@ -1138,9 +1189,9 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
we have no line table information or the line info tells
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
us that the subroutine call is not part of the line
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
associated with the prologue. */
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
- if ((pc - orig_pc) > 8)
|
|
![](https://seccdn.libravatar.org/avatar/85b447f035226e9026bf38c8125daa97b44413276791e668e1cbbf2c75718f60?s=16&d=retro) |
43873a6 |
+ if ((pc - fdata->func_start) > 8)
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
{
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
- struct symtab_and_line prologue_sal = find_pc_line (orig_pc, 0);
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
+ struct symtab_and_line prologue_sal = find_pc_line (fdata->func_start, 0);
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
9231e41 |
struct symtab_and_line this_sal = find_pc_line (pc, 0);
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
|
|
![](https://seccdn.libravatar.org/avatar/42ac4dd077e804ee03667d5d981e649d6c330894ddfc904189505a38d937e2e0?s=16&d=retro) |
aa01540 |
if ((prologue_sal.line == 0) || (prologue_sal.line != this_sal.line))
|