diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1994-10-29 09:51:32 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1994-10-29 09:51:32 +0000 |
commit | 9ed8604f38b6ffad8600789ce048a0f4e12c4e5d (patch) | |
tree | 4170b1e4143f1cce5c5217ed09b7f1036f346205 /gdb/rs6000-tdep.c | |
parent | b7966a5adc3cbf38544dca97a9025df896a3db4c (diff) | |
download | gdb-9ed8604f38b6ffad8600789ce048a0f4e12c4e5d.zip gdb-9ed8604f38b6ffad8600789ce048a0f4e12c4e5d.tar.gz gdb-9ed8604f38b6ffad8600789ce048a0f4e12c4e5d.tar.bz2 |
* top.c (line_completion_function): Renamed from
symbol_completion_function, takes the line buffer and the
point in the line buffer as additional arguments.
(readline_line_completion_function): New function, interface
between readline and line_completion_function.
(init_main): Use it.
(complete_command): Use line_completion_function instead of
abusing rl_line_buffer. Free completion strings after printing
them.
* symtab.c (completion_list_add_name): Recheck for duplicates
if we intend to add a modified symbol.
* gdbtypes.h (cplus_struct_type): nfn_fields_total no longer
includes the number of methods from the baseclasses.
* stabsread.c (attach_fn_fields_to_type): No longer add the
number of methods from the baseclasses to TYPE_NFN_FIELDS_TOTAL,
the baseclass type might not have been completely filled in yet.
* symtab.c (total_number_of_methods): New function to compute
the total number of methods for a type, including the methods
from baseclasses.
(decode_line_1): Use it instead of TYPE_NFN_FIELDS_TOTAL to
allocate the symbol array for find_methods.
* stabsread.c (scan_file_globals): Add default case to minimal
symbol type switch, to avoid gcc -Wall warnings.
* config/rs6000/tm-rs6000.h (INIT_EXTRA_FRAME_INFO):
Don't test for zero backchain pointer to recognize a signal
handler frame, if read() gets interrupted by a signal, the
backchain will be non zero.
(SIG_FRAME_FP_OFFSET): Move to here from rs6000-tdep.c,
improve comment.
(SIG_FRAME_PC_OFFSET): New definition.
(FRAME_SAVED_PC): Return saved pc from sigcontext if this
is a signal handler frame.
* rs6000-tdep.c (function_frame_info): Do not error out
if we can't access the instructions.
* config/rs6000/tm-rs6000.h (CONVERT_FROM_FUNC_PTR_ADDR):
New definition to get the function address from a function pointer.
* valops.c (find_function_addr): Use it when calling a user
function through a function pointer.
Diffstat (limited to 'gdb/rs6000-tdep.c')
-rw-r--r-- | gdb/rs6000-tdep.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 18fe4e9..796b082 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -564,12 +564,16 @@ function_frame_info (pc, fdata) { unsigned int tmp; register unsigned int op; + char buf[4]; fdata->offset = 0; fdata->saved_gpr = fdata->saved_fpr = fdata->alloca_reg = -1; fdata->frameless = 1; - op = read_memory_integer (pc, 4); + /* Do not error out if we can't access the instructions. */ + if (target_read_memory (pc, buf, 4)) + return; + op = extract_unsigned_integer (buf, 4); if (op == 0x7c0802a6) { /* mflr r0 */ pc += 4; op = read_memory_integer (pc, 4); @@ -1094,17 +1098,7 @@ rs6000_frame_chain (thisframe) if (inside_entry_file ((thisframe)->pc)) return 0; if (thisframe->signal_handler_caller) - { - /* This was determined by experimentation on AIX 3.2. Perhaps - it corresponds to some offset in /usr/include/sys/user.h or - something like that. Using some system include file would - have the advantage of probably being more robust in the face - of OS upgrades, but the disadvantage of being wrong for - cross-debugging. */ - -#define SIG_FRAME_FP_OFFSET 284 - fp = read_memory_integer (thisframe->frame + SIG_FRAME_FP_OFFSET, 4); - } + fp = read_memory_integer (thisframe->frame + SIG_FRAME_FP_OFFSET, 4); else fp = read_memory_integer ((thisframe)->frame, 4); |