source_script_from_stream if it may have been found on the search path.
* python/py-auto-load.c (source_section_scripts): Pass full path to
source_python_script_for_objfile.
* python/python.c (source_python_script): Delete stream parameter.
All callers updated.
(source_python_script_for_objfile): Ditto.
* python/python-internal.h (source_python_script_for_objfile): Update.
* python/python.h (source_python_script): Update.
testsuite/
* gdb.python/python.exp: Test source -s.
gdb/
* frame.c (frame_stop_reason_string): Rewrite using
unwind_stop_reasons.def.
* frame.h (enum unwind_stop_reason): Likewise.
* python/py-frame.c (gdbpy_initialize_frames): Likewise.
(gdbpy_frame_stop_reason_string): Use new enum unwind_stop_reason
constants for bound-checking.
* unwind_stop_reasons.def: New file.
* stack.c (backtrace_command_1): Handle UNWIND_FIRST_ERROR as an alias
instead of a distinct value.
doc/
* gdb.texinfo ((Frames In Python): Document
gdb.FRAME_UNWIND_FIRST_ERROR contant.
PR python/13331
* python/py-function.c (fnpy_call): Check 'args' is not NULL.
(convert_values_to_python): Return on Python tuple allocation
failure. Return NULL on value conversion error.
Not sure why, but the version currently checked in as an extraneous
trailing whitespace that showed up as a diff when I reran gdbarch.sh.
gdb/ChangeLog:
* gdbarch.h: Regenerate.
(ppc_sysv_abi_push_dummy_call): Use it.
(do_ppc_sysv_return_value): Likewise.
(ppc64_sysv_abi_push_dummy_call): Likewise.
(ppc64_sysv_abi_return_value): Likewise.
* python/py-value.c (value_to_value_object): Remove fetching of
the value if it was lazy.
(valpy_get_is_lazy): New function.
(valpy_fetch_lazy): New function.
Our testsuite noticed a crash when trying to call a function which
requires GDB to allocate memory in the inferior. Typically, this
happens when one of the parameters is a string. For instance, our
testcase tries:
(gdb) call debug.trace (me, "You")
[1] 32737 segmentation fault /path/to/gdb
What happens is that GDB sees the string, and thus tries to allocate
memory for it in the inferior:
> /* Allocate NBYTES of space in the inferior using the inferior's
> malloc and return a value that is a pointer to the allocated
> space. */
>
> struct value *
> value_allocate_space_in_inferior (int len)
> {
> struct objfile *objf;
> struct value *val = find_function_in_inferior ("malloc", &objf);
And find_function_in_inferior first searches the symtab in case
we have debug info. But, in our case (bareboard powerpc), we don't,
so it gets "malloc"'s address from the minimal symbols, and builds
a value whose type is a TYPE_CODE_PTR, not a TYPE_CODE_FUNC.
As a result, when we later try to make the call to malloc, we end up
inside the powerpc tdep code that has:
> do_ppc_sysv_return_value (struct gdbarch *gdbarch, struct type *func_type,
[...]
> if (func_type
> && TYPE_CALLING_CONVENTION (func_type) == DW_CC_GDB_IBM_OpenCL)
The problem is that func_type is not a TYPE_CODE_FUNC, and thus
the type-specific kind is not TYPE_SPECIFIC_FUNC, and so we do
TYPE_CALLING_CONVENTION is an invalid access.
Interestingly, the other call to TYPE_CALLING_CONVENTION is correctly
preceded by a check of the type's TYPE_CODE (making sure that it is
TYPE_CODE_FUNC).
gdb/ChangeLog:
* ppc-sysv-tdep.c (do_ppc_sysv_return_value): Do not check
FUNC_TYPE's calling convention if FUNC_TYPE is not a function.
gdb/
* linux-nat.c (linux_handle_extended_wait): When handling a clone
event, in non-stop, if not stopping, make sure the new lwp has
last_resume_kind set to resume_continue. Assert that when we're
resuming the new lwp, its last_resume_kind is resume_continue.
When using the new -ada-task-info command with an argument,
the output would say that there are N entries in the returned
table, (where N is the total number of tasks present in the inferior).
But, in fact, the table would only contain at most 1 entry.
This patch fixes this by properly computing the number of
tasks being displayed before giving it to the uiout.
gdb/ChangeLog:
* ada-tasks.c (print_ada_task_info): Fix computation of
number of tasks displayed in command output.
gdb/testsuite/ChangeLog:
* gdb.ada/mi_task_info/task_switch.adb: New file.
* gdb.ada/mi_task_info.exp: New file.
* dwarf2-frame-tailcall.c: Include dwarf2-frame.h.
(dwarf2_tailcall_prev_register_first): Use dwarf2_frame_cfa.
(dwarf2_tailcall_sniffer_first): Remove variable pc_regnum. Replace
gdbarch_pc_regnum and frame_unwind_register_unsigned by
gdbarch_unwind_pc.
arguments by adding OBJFILE. Instead of getting objfile from
symbol's symtab, use new argument OBJFILE.
* cp-support.h (cp_scan_for_anonymous_namespaces): Changed function
arguments by adding OBJFILE.
* gdb/dwarf2read.c (new_symbol_full): Change call to
cp_scan_for_anonymous_namespaces to match new signature.
* gdb/stabsread.c (define_symbol): Change call to
cp_scan_for_anonymous_namespaces to match new signature.
initialize them from target PT_PHDR p_vaddr, relocate sect_addr by
pt_phdr if PT_PHDR was found.
* gdb.base/attach-pie-noexec.c: New files.
* gdb.base/attach-pie-noexec.exp: New files.
* gdbtypes.h: Added TYPE_SAFE_NAME macro to get the name of a
type or "<unnamed type"> when there is no name assigned.
* gnu-v3-abi.c (gnuv3_rtti_type): Use TYPE_SAFE_NAME macro to
avoid a sigint when no name is assigned.
Revert:
2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2expr.c (ctx_no_read_reg): New function.
* dwarf2expr.h (ctx_no_read_reg): New declaration.
* dwarf2read.c (read_2_signed_bytes, read_4_signed_bytes): Remove.
(decode_locdesc_read_mem, decode_locdesc_ctx_funcs): New.
(decode_locdesc): Replace by a caller of dwarf_expr_eval.
gdb/testsuite/
* gdb.dwarf2/dw2-simple-locdesc.exp (p &s.shl): KFAIL it.
Revert the part of:
2011-07-27 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.dwarf2/dw2-stack-boundary.exp (check partial symtab errors):
Change the expected string.