Doug Evans [Thu, 21 Jan 2010 18:35:42 +0000 (18:35 +0000)]
* linux-low.c (PTRACE_ARG3_TYPE): Change from long to void*.
(PTRACE_ARG4_TYPE): New macro.
(handle_extended_wait): Cast ptrace arg4 to PTRACE_ARG4_TYPE.
(linux_wait_for_event_1, linux_resume_one_lwp): Ditto.
(fetch_register): Cast to uintptr_t before casting to PTRACE_ARG3_TYPE.
(usr_store_inferior_registers): Ditto.
(linux_read_memory, linux_write_memory): Ditto.
(linux_test_for_tracefork): Ditto.
Nick Clifton [Thu, 21 Jan 2010 14:54:40 +0000 (14:54 +0000)]
* elflink.c (elf_link_add_object_symbols): Look up name of
undefined symbol both before and after versioning has been
applied. Do not bother with symbols that are weakly undefined.
Nick Clifton [Thu, 21 Jan 2010 10:31:32 +0000 (10:31 +0000)]
PR 4437
* ldfile.c: (ldfile_open_file): Do not stop link upon encountering
a missing file or library. Instead mark the entry as missing and
set the global flag to indicate that missing files were
encountered.
* ldlang.c (missing_files): New exported variable.
(load_symbols): Skip loading if the file is missing.
(open_input_bfds): Terminate link if any input files were
missing.
* ldlang.h (struct lang_input_statement_struct): Add missing_file
field.
Add export of missing_file variable.
Joel Brobecker [Thu, 21 Jan 2010 04:34:52 +0000 (04:34 +0000)]
Improve doc on how to execute a Python script from GDB.
* gdb.texinfo (File Options): Adjust the documentation of this
switch to refer to the "source" command rather than partially
duplicating some of the relevant information.
(Extending GDB): Introduce and document the set/show script-extension
setting.
(Command Files): Add note explaining that the "source" command
is also used to evalute scripts written in other languages.
Remove the short slightly incorrect reference to sourcing Python
scripts.
(Python Commands): Document how to execute a Python script from GDB.
Jan Kratochvil [Wed, 20 Jan 2010 21:09:30 +0000 (21:09 +0000)]
gdb/testsuite/
* gdb.threads/watchthreads-reorder.c (gdbstop_mutex): Remove.
(thread1_func): Protect thread1_tid with thread1_tid_cond by
thread1_tid_mutex. Remove gdbstop_mutex handling.
(thread2_func): Protect thread2_tid with thread2_tid_cond by
thread2_tid_mutex. Remove gdbstop_mutex handling.
(main): Move thread1_tid_mutex and thread2_tid_mutex locks before
pthread_create. Remove gdbstop_mutex handling. New comment. Replace
pthread_cond_wait conditionalizations by while loops.
Tom Tromey [Wed, 20 Jan 2010 18:06:16 +0000 (18:06 +0000)]
gdb
PR backtrace/10770:
* valarith.c (value_binop): Handle BINOP_GTR, BINOP_LEQ, and
BINOP_GEQ. Handle BINOP_NOTEQUAL in the signed case.
* dwarf2expr.c (new_dwarf_expr_context): Allocate
dwarf_stack_values, not CORE_ADDRs.
(execute_stack_op): Change DW_OP_div and comparison operators to
use signed operands.
gdb/testsuite
PR backtrace/10770:
* gdb.dwarf2/pr10770.exp: New file.
* gdb.dwarf2/pr10770.c: New file.
* gdb.dwarf2/Makefile.in (EXECUTABLES): Add pr10770.
Doug Kwan [Wed, 20 Jan 2010 17:29:52 +0000 (17:29 +0000)]
2010-01-20 Doug Kwan <dougkwan@google.com>
* arm.cc (Target_arm::Arm_input_section_map): Change key type from
Input_section_specifier to Section_id.
(Target_arm::new_arm_input_section: Adjust code for change of key
type.
(Target_arm::find_arm_input_section): Ditto.
* gc.h (object.h): Include for Section_id nand Section_id_hash.
(Section_id): Remove.
(Garbage_collection::Section_id_hash): Remove.
* icf.h (object.h): Include for Section_id nand Section_id_hash.
(Section_id): Remove.
(Icf::Section_id_hash): Remove.
* object.h (Section_id, Const_section_id, Section_id_hash,
Const_section_id_hash): New type definitions.
* output.cc (Output_section::add_relaxed_input_section): Change to
use Const_section_id instead of Input_section_specifier as key type.
(Output_section::add_merge_input_section): Ditto.
(Output_section::build_relaxation_map): Change to use Section_id
instead of Input_section_specifier as key type.
(Output_section::convert_input_sections_in_list_to_relaxed_sections):
Ditto.
(Output_section::convert_input_sections_to_relaxed_sections): Change
to use Const_section_id instead of Input_section_specifier as key type.
(Output_section::find_merge_section): Ditto.
(Output_section::find_relaxed_input_section): Ditto.
* output.h (Input_section_specifier): Remove class.
(Output_section::Output_section_data_by_input_section_map): Change
key type to Const_section_id.
(Output_section::Output_relaxed_input_section_by_input_section_map):
Ditto.
(Output_section::Relaxation_map): Change key type to Section_id.
Vladimir Prus [Wed, 20 Jan 2010 14:23:07 +0000 (14:23 +0000)]
Per-inferior args and tty and environment.
* infcmd.c (inferior_args): Rename to ...
(inferior_args_scratch): ... this.
(inferior_io_terminal): Rename to ...
(inferior_io_terminal_scratch): ... this.
(inferior_argc, inferior_argv): Remove.
(set_inferior_io_terminal, get_inferior_io_terminal): Store
inside current_inferior().
(set_inferior_tty_command, show_inferior_tty_command): New.
(get_inferior_args, set_inferior_args): Store inside
current_inferior().
(notice_args_set): Likewise and rename to...
(set_args_command): ... this.
(set_inferior_args_vector): Likewise.
(notice_args_read): Rename to...
(show_args_command): ...new.
(tty_command): Remove.
(run_command_1): Don't free old args, as they are freed by
set_inferior_arg now.
(run_no_args_command): Likewise.
(inferior_environ): Remove.
(run_command_1): Use environment of the current inferior.
(environment_info, set_environment_command)
(unset_environment_command, path_info, path_command): Likewise.
(_initialize_infcmd): Adjust for function and variable renames.
Do not init inferior_environ.
* inferior.h (set_inferior_arg): Adjust prototype.
(struct inferior): New fields args, argc, argv, terminal, environment.
(inferior_environ): Remove declaration.
* inferior.c (free_inferior): Free new fields.
(add_inferior_silent): Initialize 'environment' field.
* main.c (captured_main): Set arguments only after the initial
inferior has been created. Set set_inferior_io_terminal,
not tty_command.
* mi/mi-main.c (mi_cmd_env_path): Use environment of the current
inferior.
(_initialize_mi_cmd_env): Adjust for disappearance of global
inferior_environ.
* solib.c (solib_find): Use environment of the current inferior.
Ian Lance Taylor [Wed, 20 Jan 2010 00:09:13 +0000 (00:09 +0000)]
binutils/:
* objcopy.c (copy_main): Rewrite OPTION_ADD_SECTION code to work
with non-ordinary files like /dev/null.
binutils/testsuite/:
* lib/utils-lib.exp (run_dump_test): Permit option values to use
$srcdir to refer to the source directory.
* binutils-all/add-section.d: New test.
* binutils-all/add-empty-section.d: New test.
* binutils-all/empty-file: New test input file.
* binutils-all/objcopy.exp: Run new tests.
Jan Kratochvil [Tue, 19 Jan 2010 20:31:38 +0000 (20:31 +0000)]
gdb/
* breakpoint.c (watchpoint_check): Check the call
gdbarch_in_function_epilogue_p before calling frame_find_by_id.
Extend the comment.
* config/djgpp/fnchange.lst: Add translations for
watchpoint-cond-gone.exp, watchpoint-cond-gone.c and
watchpoint-cond-gone-stripped.c.
Tom Tromey [Tue, 19 Jan 2010 18:11:19 +0000 (18:11 +0000)]
gdb
PR c++/8000:
* dwarf2read.c (partial_die_parent_scope): Put enumeration type
into parent scope, and enumerator into grandparent scope.
gdb/testsuite
PR c++/8000:
* gdb.cp/namespace.exp: Use new enum. Fix line numbers in
existing tests.
* gdb.cp/namespace.cc (AAA::SomeEnum): New enum.
(main): Use AAA::SomeEnum.
Joel Brobecker [Tue, 19 Jan 2010 09:45:39 +0000 (09:45 +0000)]
Comment out unused function.
The function is being commented out instead of deleted because this function
is used by some code which is itself commented out. It is unclear which
the latter was commented out.
* stack.c (print_block_frame_labels): Comment function out.
Jan Kratochvil [Tue, 19 Jan 2010 08:00:39 +0000 (08:00 +0000)]
gdb/testsuite/
* gdb.mi/mi-break.exp (set line_callme_head, set line_callme_body): New.
(test_ignore_count): Declare line_callme_body global.
(run to breakpoint with ignore count): Use line_callme_body.
* gdb.mi/mi-cli.exp (set line_main_head, set line_main_body)
(set line_main_hello, set line_main_return): Reindent.
(set line_callee4_head, set line_callee4_body, set line_callee4_next):
New.
(continue to callee4): Use line_callee4_body.
(check *stopped from CLI command): Use line_callee4_next.
* gdb.mi/mi2-cli.exp (set line_main_head, set line_main_body)
(set line_main_hello, set line_main_return): Reindent.
(set line_callee4_head, set line_callee4_body): New.
(continue to callee4): Use line_callee4_body.
Alan Modra [Tue, 19 Jan 2010 03:49:43 +0000 (03:49 +0000)]
* elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
R_ARM_THM_CALL entry.
(elf32_arm_final_link_relocate): Correct calculation of
reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
or R_ARM_THM_JUMP24 relocation.
Joel Brobecker [Mon, 18 Jan 2010 10:24:26 +0000 (10:24 +0000)]
Trust PAD types instead of using PAD___XVS.
* ada-lang.c (trust_pad_over_xvs): New static variable.
(ada_is_aligner_type): If !trust_pad_over_xvs and there is a
parallel XVS type, follow the XVS type instead of the PAD type.
(unwrap_value): Make sure that there is no parallel XVE type
before returning the value as is.
(set_ada_list, show_ada_list): New static variables.
(set_ada_command, show_ada_command): New functions.
(_initialize_ada_language): Add new "set/show ada" prefix commands.
Add new "set/show ada trust-PAD-over-XVS" setting.
Alan Modra [Mon, 18 Jan 2010 07:21:46 +0000 (07:21 +0000)]
PR 11168
* coffcode.h (coff_compute_section_file_positions): Move Rs6000COFF_C
block past vars in COFF_IMAGE_WITH_PE block. Report error on more
than 32k sections.
Stan Shebs [Fri, 15 Jan 2010 22:37:20 +0000 (22:37 +0000)]
Add trace file support.
* tracepoint.h (enum trace_stop_reason): New enum.
(struct trace_status): New struct.
(parse_trace_status): Declare.
(struct uploaded_tp): Move here from remote.c,
add fields for actions.
(struct uploaded_tsv): New struct.
* tracepoint.c (tfile_ops): New target vector.
(trace_fd): New global.
(tfile_open): New function.
(tfile_close): New function.
(tfile_files_info): New function.
(tfile_get_trace_status): New function.
(tfile_get_traceframe_address): New function.
(tfile_trace_find): New function.
(tfile_fetch_registers): New function.
(tfile_xfer_partial): New function.
(tfile_get_trace_state_variable_value): New function.
(init_tfile_ops): New function.
(_initialize_tracepoint): Call it, add tfile target.
(trace_status): New global.
(current_trace_status): New function.
(trace_running_p): Remove, change all users to get from
current_trace_status()->running.
(get_trace_status): Remove.
(trace_status_command): Call target_get_trace_status directly,
report more detail including tracing stop reasons.
(trace_find_command): Always allow tfind on a file.
(trace_find_pc_command): Ditto.
(trace_find_tracepoint_command): Ditto.
(trace_find_line_command): Ditto.
(trace_find_range_command): Ditto.
(trace_find_outside_command): Ditto.
(trace_frames_offset, cur_offset): Declare as off_t.
(trace_regblock_size): Rename from reg_size, update users.
(parse_trace_status): New function.
(tfile_interp_line): New function.
(disconnect_or_stop_tracing): Ensure current trace
status before asking what to do.
(stop_reason_names): New global.
(trace_save_command): New command.
(get_uploaded_tp): Move here from remote.c.
(find_matching_tracepoint): Ditto.
(merge_uploaded_tracepoints): New function.
(parse_trace_status): Use stop_reason_names.
(_initialize_tracepoint): Define tsave command.
* target.h (target_ops): New fields to_save_trace_data,
to_upload_tracepoints, to_upload_trace_state_variables,
to_get_raw_trace_data, change to_get_trace_status
to take a pointer to a status struct.
(target_save_trace_data): New macro.
(target_upload_tracepoints): New macro.
(target_upload_trace_state_variables): New macro.
(target_get_raw_trace_data): New macro.
* target.c (update_current_target): Add new methods, change
signature of to_get_trace_status.
* remote.c (hex2bin): Make globally visible.
(bin2hex): Ditto.
(remote_download_trace_state_variable): Download name also.
(remote_get_trace_status): Update parameter, use
parse_trace_status.
(remote_save_trace_data): New function.
(remote_upload_tracepoints): New function.
(remote_upload_trace_state_variables): New function.
(remote_get_raw_trace_data): New function.
(remote_start_remote): Use them.
(_initialize_remote_ops): Add operations.
* ax-gdb.c: Include breakpoint.h.
* breakpoint.c (create_tracepoint_from_upload): Use
break_command_really, return tracepoint, warn about unimplemented
parts.
* NEWS: Mention trace file addition.
* gdb.texinfo (Trace Files): New section.
(Tracepoint Packets): Document QTSave and qTBuffer.
(Trace File Format): New appendix.
* generic/gdbtk-bp.c (gdb_trace_status): Use current_trace_status.
* gdb.trace/tfile.c: New file.
* gdb.trace/tfile.exp: New file.
Jan Kratochvil [Fri, 15 Jan 2010 21:38:16 +0000 (21:38 +0000)]
bfd/
Fix compilation warning on gcc-3.4.
* vms-tir.c (start_etir_record, sto_imm): Rename the prototype
parameter index to sec_index according to the function definition.
Joel Brobecker [Fri, 15 Jan 2010 12:07:04 +0000 (12:07 +0000)]
Do not use name-based lookup for unconstrained packed arrays.
* ada-lang.c (find_parallel_type_by_descriptive_type):
Limit the fallback to name-based lookups to the case where
the type is a constrained packed array.
Doug Kwan [Fri, 15 Jan 2010 04:58:34 +0000 (04:58 +0000)]
2010-01-14 Doug Kwan <dougkwan@google.com>
* arm.cc (map, utility): Include headers.
(Target_arm::apply_cortex_a8_workaround): New method.
(Arm_relobj::do_relocate_sections): Apply any Cortex-A8 workaround.
(Target_arm::Scan::local): Handle R_ARM_THM_JUMP24, R_ARM_THM_JUMP19.
(Target_arm::Scan::global): R_ARM_THM_JUMP19.
(Target_arm::do_finalize_sections): Set fix_cortex_a8_ according to
the --[no-]fix-cortex-a8 command line options.
(Target_arm::Relocate::relocate): Handle R_ARM_JUMP19.
(Target_arm::relocate_stub): Use addend in instruction template.
* options.h (DEFINE_bool): Set the user-set flag.
(General_options): Add --[no-]-fix-cortex options.
* output.cc (Output_section::convert_input_sections_to_relaxed_sections)
: Update fast look-up map after conversion.
Jan Kratochvil [Thu, 14 Jan 2010 21:15:00 +0000 (21:15 +0000)]
gdb/
Support Valgrind attachments broken by the PIE support.
* auxv.c: Include gdbcore.h.
(procfs_xfer_auxv): Make static. Reduce its comment. Drop its
parameters ops, object and annex. Remove their assertions.
(ld_so_xfer_auxv, memory_xfer_auxv): New function.
* auxv.h (procfs_xfer_auxv): Remove comment. Rename to ...
(memory_xfer_auxv): ... here.
* linux-nat.c (linux_xfer_partial): Rename procfs_xfer_auxv to
memory_xfer_auxv.
* procfs.c (procfs_xfer_partial): Likewise.
* solib-svr4.c (svr4_relocate_main_executable): New prototype.
(svr4_special_symbol_handling): Call svr4_relocate_main_executable.
(svr4_solib_create_inferior_hook): Conditionalize the
svr4_relocate_main_executable call.
Jan Kratochvil [Thu, 14 Jan 2010 21:12:00 +0000 (21:12 +0000)]
gdb/testsuite/
* gdb.base/break-interp-lib.c: Include unistd.h, assert.h and stdio.h.
(libfunc): New parameter action. Implement also selectable "sleep".
* gdb.base/break-interp-main.c: Include assert.h.
(libfunc): New parameter action.
(main): New parameters argc and argv. Assert argc. Pass argv.
* gdb.base/break-interp.exp (test_core): Pass the "segv" argument.
(test_attach): New proc.
(test_ld): Pass new "segv" exec parameter. Call also test_attach.
* lib/gdb.exp (core_find): New parameter arg. Pass it to $binfile.
Jan Kratochvil [Thu, 14 Jan 2010 21:09:05 +0000 (21:09 +0000)]
gdb/
* solib-svr4.c (scan_dyntag): Remove variable dyn_addr. New variable
target_section. Find SECT in current_target_sections, gdb_assert it.
(elf_lookup_lib_symbol): Pass the binary file if given symfile_objfile.
New variable abfd.
* symtab.c (lookup_objfile_from_block): Return the binary file instead
of separate debug info file.
gdb/testsuite/
* gdb.base/break-interp.exp (test_core): New proc.
(test_ld): Call it.
Jan Kratochvil [Thu, 14 Jan 2010 21:04:53 +0000 (21:04 +0000)]
gdb/testsuite/
* gdb.base/break-interp-main.c, gdb.base/break-interp-lib.c: New.
* gdb.base/break-interp.exp: Exit on skip_shlib_tests. Change $srcfile.
New variables $binfile_lib and $srcfile_lib. Call get_compiler_info
and gdb_compile_shlib. Use new -Wl compiler options.
(dl bt, main bt): New tests.
Jan Kratochvil [Thu, 14 Jan 2010 21:01:25 +0000 (21:01 +0000)]
gdb/
Support PIEs with no symfile_objfile.
* exec.c (print_section_info <abfd == exec_bfd>): Relocate Entry point.
* solib-svr4.c (svr4_relocate_main_executable <exec_bfd>): New block.
gdb/testsuite/
Support PIEs with no symfile_objfile.
* gdb.base/break-interp.exp: New argument at the test_ld calls.
(test_ld): New parameter trynosym.
(test_ld <$trynosym>): New block.
Jan Kratochvil [Thu, 14 Jan 2010 20:48:26 +0000 (20:48 +0000)]
gdb/
* solib-svr4.c (svr4_relocate_main_executable): Move the static exec
code part to ...
(svr4_static_exec_displacement): ... a new function.
(svr4_exec_displacement): New function.
(svr4_relocate_main_executable): Call svr4_exec_displacement. Allocate
new_offsets using alloca now. Remove variable old_chain and changed.
Call objfile_relocate unconditionally now.
gdb/testsuite/
* gdb.base/break-interp.exp: New file.