aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2013-09-27Fix regular /path/to/directory sysroots and target reported dll paths with ↵Pedro Alves4-3/+40
drive specs. I tried debugging a remote Windows program on Linux host, and pointed the sysroot to "/some/path/" rather than "remote:", and I found GDB couldn't find the dlls in the sysroot. If the dll name is "C:/Windows/system32/ntdll.dll", I end up with the sysroot+in_pathname concatenated this way: (top-gdb) p temp_pathname $1 = 0x228b690 "/some/pathC:/Windows/system32/ntdll.dll" ^^ That is, a directory separator is missing. This is a regression. The problem is that solib_find decides that since the target path has a drive spec, a separator is not necessary, which is clearly wrong in this case. That check was added in <https://sourceware.org/ml/gdb-patches/2013-06/msg00028.html>, to handle the case of sysroot being "remote:". This patch fixes that original issue in a different way. Instead of checking whether the path has a drive spec, check whether the sysroot is "remote:". The patch adds a table that helps visualize the cases that need a separator. I also confirmed the original issue is still handled as expected. That is, that "set sysroot remote:" still does the right thing. remote_filename_p returns true if the filename is prefixed with "remote:". In this case, we need to check whether the filename is exactly "remote:". I thought of different ways or either changing remote_filename_p or adding another convenience function to remote.c to avoid exposing the "remote:" prefix out of remote.c. But all attempts turned out adding lot of over needless complication. So the patch just exposes the prefix behind a new macro, which allows using a straighforward strcmp. gdb/ 2013-09-27 Pedro Alves <palves@redhat.com> * remote.h (REMOTE_SYSROOT_PREFIX): New define. (remote_filename_p): Add comment. * remote.c (remote_filename_p): Adjust to use REMOTE_SYSROOT_PREFIX. * solib.c (solib_find): When deciding whether we need to add a directory separator, check whether the sysroot is "remote:" instead of checking whether the patch has a drive spec. Add comments.
2013-09-27remote.c: Remove unnecessary fields from 'struct stop_reply'.Pedro Alves2-20/+18
I noticed these fields aren't really necessary -- if the T stop reply indicated any we have any special event, the fallthrough doesn't really do anything. Tested on x86_64 Fedora 17 w/ local gdbserver, and also confirmed "catch load" against a Windows gdbserver running under Wine, which exercises TARGET_WAITKIND_LOADED, still works as expected. gdb/ 2013-09-27 Pedro Alves <palves@redhat.com> * remote.c (struct stop_reply) <solibs_changed, replay_event>: Delete fields. (remote_parse_stop_reply): Adjust, setting event->ws.kind directly.
2013-09-26Fix set debug frame outputJan Kratochvil2-2/+11
gdb/ 2013-09-26 Jan Kratochvil <jan.kratochvil@redhat.com> Fix set debug frame output. * frame.c (fprint_frame_type): Add TAILCALL_FRAME entry. Move SENTINEL_FRAME entry lower to match enum frame_type order.
2013-09-26 Replace constant values 8 to 15 by AMD64_R8_REGNUM toPierre Muller3-5/+21
AMD64_R15_REGNUM when a register index is expected. * amd64-windows-tdep.c (amd64_windows_dummy_call_integer_regs): Substitute in array. * amd64-tdep.c (amd64_dwarf_regmap): Ditto. (amd64_push_arguments): Substitute in integer_regnum array.
2013-09-26 * objfiles.c (allocate_objfile): Move comment to better place.Doug Evans2-4/+6
2013-09-25 New option "set debug symfile on".Doug Evans9-6/+810
* NEWS: Mention "set debug symfile". * Makefile.in (SFILES): Add symfile-debug.c. (COMMON_OBS): Add symfile-debug.o. * elfread.c (elf_symfile_read): Use objfile_set_sym_fns to set the objfile's symbol functions. * objfiles.h (objfile_set_sym_fns): Declare. * symfile-debug.c: New file. * symfile.c (syms_from_objfile_1): Use objfile_set_sym_fns to set the objfile's symbol functions. (reread_symbols): Ditto.
2013-09-25 * symfile.h (struct sym_fns): Delete member "sym_flavour".Doug Evans10-37/+41
All uses updated. (add_symtab_fns): Update prototype. * symfile.c (sym_fns_ptr): Delete. Replace with ... (registered_sym_fns): ... this. (symtab_fns): Update. (add_symtab_fns): New arg "flavour". All callers updated. (find_sym_fns): Rewrite to use new sym_fns registry.
2013-09-25 * symfile.h (struct sym_fns): Add "objfile" argument toDoug Evans4-4/+8
sym_read_linetable. All uses updated.
2013-09-25 * symtab.c (domain_name, search_domain_name): New functions.Doug Evans3-0/+38
* symtab.h (domain_name, search_domain_name): Declare.
2013-09-25 * symfile.h (struct quick_symbol_functions): Reorg arg list ofDoug Evans5-10/+20
map_matching_symbols so objfile is first. All uses updated. * dwarf2read.c (dw2_map_matching_symbols): Update signature. * psymtab.c (map_matching_symbols_psymtab): Update signature.
2013-09-25ChangeLog:Ulrich Weigand4-2/+38
2013-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com> PR shlibs/8882 * solib-svr4.c (svr4_read_so_list): Skip the vDSO when reading link map entries. testsuite/ChangeLog: 2013-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com> PR shlibs/8882 * gdb.base/corefile.exp: Add a check to assure warning-free core-file load.
2013-09-25 * objfiles.c (free_objfile): Move comment.Doug Evans2-2/+5
2013-09-24Delete unused ada-exp.y:string_to_operatorJoel Brobecker2-39/+5
This function appears to have been unused since 2004. gdb/ChangeLog: * ada-exp.y (string_to_operator): Delete. (dummy_string_to_ada_operator): Delete.
2013-09-24Fix name of file in ChangeLog entry (re-implement funcalls on x64-windows)Joel Brobecker1-1/+1
2013-09-24Revert use of classify callback in i386 gdbarch_tdep.Joel Brobecker4-62/+52
This is no longer useful, as it was introduced to reuse the funcall handling code in amd64-tdep.c in the context of x64-windows. But we have since then changed the implementations to be completely independent of each other. This reverts the non-windows-specific part of the change called: amd64: Integer parameters in function calls on Windows (the x64-windows portion has already been reverted) gdb/ChangeLog: Revert: * i386-tdep.h (enum amd64_reg_class): New, moved here from amd64-tdep.c. (struct gdbarch_tdep): Add fields call_dummy_num_integer_regs, call_dummy_integer_regs, and classify. * amd64-tdep.h (amd64_classify): Add declaration. * amd64-tdep.c (amd64_dummy_call_integer_regs): New static constant. (amd64_reg_class): Delete, moved to i386-tdep.h. (amd64_classify): Make non-static. Move declaration to amd64-tdep.h. Replace call to amd64_classify by call to tdep->classify. (amd64_push_arguments): Get the list of registers to use for passing integer parameters from the gdbarch tdep structure, rather than using a hardcoded one. Replace calls to amd64_classify by calls to tdep->classify. (amd64_push_dummy_call): Get the register number used for the "hidden" argument from tdep->call_dummy_integer_regs. (amd64_init_abi): Initialize tdep->call_dummy_num_integer_regs and tdep->call_dummy_integer_regs. Set tdep->classify.
2013-09-24Revert use of memory_args_by_pointer in i386 gdbarch_tdep.Joel Brobecker3-43/+13
This is no longer useful, as it was introduced to reuse the funcall handling code in amd64-tdep.c in the context of x64-windows. But we have since then changed the implementations to be completely independent of each other. This reverts the non-windows-specific part of the change called: amd64-windows: memory args passed by pointer during function calls. (the x64-windows portion has already been reverted) gdb/ChangeLog: Revert: * i386-tdep.h (gdbarch_tdep): Add field memory_args_by_pointer. * amd64-tdep.c (amd64_push_arguments): Add handling of architectures where tdep->memory_args_by_pointer is non-zero.
2013-09-24Revert use of integer_param_regs_saved_in_caller_frame in i386 gdbarch_tdep.Joel Brobecker3-19/+12
This is no longer useful, as it was introduced to reuse the funcall handling code in amd64-tdep.c in the context of x64-windows. But we have since then changed the implementations to be completely independent of each other. This reverts the non-windows-specific part of the change called: amd64-windows: 32 bytes allocated on stack by caller for integer parameter regs (the x64-windows portion has already been reverted) gdb/ChangeLog: Revert: * i386-tdep.h (struct gdbarch_tdep): Add new field integer_param_regs_saved_in_caller_frame. * amd64-tdep.c (amd64_push_dummy_call): Allocate some memory on stack if tdep->integer_param_regs_saved_in_caller_frame is set.
2013-09-24Reimplement function calls on amd64-windowsJoel Brobecker2-32/+248
This patch provides a standalone implementation of function calls on amd64-windows, instead of providing some bits and pieces hooking into the function call implementation meant for sysV (in amd64-tdep). It makes better sense to do it this way, because the two ABIs are actually very different; for instance, the concept of argument classification, which is so central in the sysV ABI and drove the the implementation in amd64-tdep, makes no sense for Windows. It is therefore better for the Windows implementation to be completely separate, rather than rely on adaptations of the sysV implementation. gdb/ChangeLog: * amd64-tdep.c: #include "value.h" (amd64_windows_classify): Delete. (amd64_windows_passed_by_integer_register) (amd64_windows_passed_by_xmm_register) (amd64_windows_passed_by_pointer) (amd64_windows_adjust_args_passed_by_pointer) (amd64_windows_store_arg_in_reg, amd64_windows_push_arguments) (amd64_windows_push_dummy_call): New functions. (amd64_windows_init_abi): Remove setting of tdep->call_dummy_num_integer_regs, tdep->call_dummy_integer_regs, tdep->classify, tdep->memory_args_by_pointer and tdep->integer_param_regs_saved_in_caller_frame. Add call to set_gdbarch_push_dummy_call.
2013-09-24Support .dwp with the name of symlinked binary fileJan Kratochvil5-1/+121
gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf2read.c (open_and_init_dwp_file): Try open_dwp_file also with objfile->original_name. gdb/testsuite/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.dwarf2/dwp-symlink.c: New file. * gdb.dwarf2/dwp-symlink.exp: New file.
2013-09-24Keep objfile original filenameJan Kratochvil12-37/+115
gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> Pass down original filename for objfile. * coffread.c (coff_symfile_read): Update symbol_file_add_separate call. * elfread.c (elf_symfile_read): Likewise. * jit.c (jit_object_close_impl): Update allocate_objfile call, no longer set ORIGINAL_NAME. (jit_bfd_try_read_symtab): Update symbol_file_add_from_bfd call. * jv-lang.c (get_dynamics_objfile): Update allocate_objfile call. * machoread.c (macho_add_oso_symfile): Add parameter name. Update symbol_file_add_from_bfd call. (macho_symfile_read_all_oso): Update two macho_add_oso_symfile calls. (macho_check_dsym): Add parameter filenamep. Change function comment. Set *filenamep. (macho_symfile_read): New variable dsym_filename. Update macho_check_dsym call. Use it for symbol_file_add_separate. * objfiles.c (allocate_objfile): Add parameter name. New comment for it. Use it for objfile->original_name. (objfile_name): Return OBFD's filename, if available. * objfiles.h (allocate_objfile): Add new parameter name. * solib.c (solib_read_symbols): Update symbol_file_add_from_bfd call. * symfile-mem.c (symbol_file_add_from_memory): Update symbol_file_add_from_bfd call. * symfile.c (read_symbols): Update symbol_file_add_separate call, new comment for it. (symbol_file_add_with_addrs): New parameter name, add function comment for it. Remove variable name. Update allocate_objfile call. (symbol_file_add_separate): New parameter name, add function comment for it. Update symbol_file_add_with_addrs call. (symbol_file_add_from_bfd): New parameter name. Update symbol_file_add_with_addrs call. (symbol_file_add): Update symbol_file_add_from_bfd call. (reread_symbols): New variable original_name. Save objfile->original_name by it. * symfile.h (symbol_file_add_from_bfd, symbol_file_add_separate): Add second parameter.
2013-09-24Code cleanup: Add objfile_name accessorJan Kratochvil35-161/+265
gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> Code cleanup: Add objfile_name accessor function. * ada-lang.c (is_known_support_routine): Use objfile_name. * auto-load.c (source_gdb_script_for_objfile) (auto_load_objfile_script): Likewise. * coffread.c (coff_symtab_read, read_one_sym): Likewise. * dbxread.c (dbx_symfile_read): Likewise. * dwarf2-frame.c (dwarf2_build_frame_info): Likewise. * dwarf2loc.c (locexpr_describe_location_piece): Likewise. * dwarf2read.c (dwarf2_get_dwz_file, dwarf2_read_index) (dw2_symtab_iter_next, dw2_expand_symtabs_matching) (lookup_dwp_signatured_type, lookup_dwo_unit) (dwarf2_build_psymtabs_hard, scan_partial_symbols, process_queue) (fixup_go_packaging, process_imported_unit_die, dwarf2_physname) (read_import_statement, create_dwo_cu, open_and_init_dwp_file) (lookup_dwo_cutu, read_call_site_scope, dwarf2_ranges_read) (dwarf2_record_block_ranges, read_common_block, read_typedef) (read_subrange_type, load_partial_dies, read_partial_die) (read_addr_index_1, read_str_index, dwarf_decode_lines_1) (die_containing_type, build_error_marker_type, lookup_die_type) (follow_die_ref_or_sig, follow_die_ref, dwarf2_fetch_die_loc_sect_off) (dwarf2_fetch_constant_bytes, follow_die_sig, get_signatured_type) (get_DW_AT_signature_type, write_psymtabs_to_index) (save_gdb_index_command): Likewise. * elfread.c (find_separate_debug_file_by_buildid, elf_symfile_read): Likewise. * expprint.c (dump_subexp_body_standard): Likewise. * gdbtypes.c (type_name_no_tag_or_error): Likewise. * jit.c (jit_object_close_impl): Use the objfile field name renamed to original_name. * linux-thread-db.c (try_thread_db_load_from_pdir_1): New variable obj_name, use objfile_name for it, use the variable. (try_thread_db_load_from_pdir, has_libpthread, thread_db_new_objfile): Use objfile_name. * machoread.c (macho_symtab_read, macho_check_dsym) (macho_symfile_relocate): Likewise. * maint.c (maintenance_translate_address): Likewise. * minidebug.c (find_separate_debug_file_in_section): Likewise. * minsyms.c (install_minimal_symbols): Likewise. * objfiles.c (allocate_objfile): Use the objfile field name renamed to original_name. (filter_overlapping_sections): Use objfile_name. (objfile_name): New function. * objfiles.h (struct objfile): Rename field name to original_name. (objfile_name): New prototype. * printcmd.c (sym_info, address_info): Use objfile_name. * probe.c (parse_probes, collect_probes, compare_probes) (info_probes_for_ops): Likewise. * progspace.c (clone_program_space): Likewise. * psymtab.c (require_partial_symbols, dump_psymtab, allocate_psymtab) (maintenance_info_psymtabs): Likewise. * python/py-auto-load.c (gdbpy_load_auto_script_for_objfile) (source_section_scripts): Likewise. * python/py-objfile.c (objfpy_get_filename): Likewise. * python/py-progspace.c (pspy_get_filename): Likewise. * solib-aix.c (solib_aix_get_toc_value): Likewise. * solib-som.c (match_main, som_solib_section_offsets): Likewise. * solib.c (solib_read_symbols): Likewise. * stabsread.c (scan_file_globals): Likewise. * stap-probe.c (handle_stap_probe): Likewise. * symfile.c (symbol_file_clear, separate_debug_file_exists) (find_separate_debug_file_by_debuglink): Likewise. (reread_symbols): Likewise. Use the objfile field name renamed to original_name. (allocate_symtab): Use objfile_name. * symmisc.c (print_symbol_bcache_statistics, print_objfile_statistics) (dump_objfile, dump_msymbols, dump_symtab_1) (maintenance_print_msymbols, maintenance_print_objfiles) (maintenance_info_symtabs, maintenance_check_symtabs): Likewise. * target.c (target_translate_tls_address, target_info): Likewise. * xcoffread.c (xcoff_initial_scan): Make variable name const. Use objfile_name.
2013-09-24Code cleanup: rename variableJan Kratochvil2-7/+13
gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> Code cleanup. * probe.c (parse_probes): Rename variable objfile_name to objfile_namestr.
2013-09-24Remove solib-sunos.cJan Kratochvil7-757/+13
gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> Remove solib-sunos.c. * Makefile.in (ALLDEPFILES): Remove solib-sunos.c. * config/m68k/obsd.mh (NATDEPFILES): Remove solib-sunos.o. * objfiles.c (rt_common_objfile): Remove. (free_objfile): Remove rt_common_objfile comparison. * objfiles.h (rt_common_objfile): Remove. * solib-sunos.c: Remove. * symfile.c (reread_symbols): Remove solib-sunos.c comment.
2013-09-24Remove a.out NetBSD and OpenBSD hostsJan Kratochvil9-39/+43
gdb/ 2013-09-21 Jan Kratochvil <jan.kratochvil@redhat.com> Remove a.out NetBSD and OpenBSD hosts. * NEWS (Removed native configurations): New. * config/arm/nbsdaout.mh: Remove. * config/i386/nbsdaout.mh: Remove. * config/i386/obsdaout.mh: Remove. * config/m68k/nbsdaout.mh: Remove. * config/sparc/nbsdaout.mh: Remove. * config/vax/nbsdaout.mh: Remove. * configure.host (arm*-*-netbsd*, i[34567]86-*-netbsd*) (i[34567]86-*-openbsd[0-2].*, i[34567]86-*-openbsd3.[0-3]) (m68*-*-netbsd*, sparc-*-netbsd*, vax-*-netbsd*): Add them to obsolete error. (arm*-*-netbsd*, i[34567]86-*-netbsd*, i[34567]86-*-openbsd[0-2].*) (i[34567]86-*-openbsd3.[0-3], m68*-*-netbsd*, sparc-*-netbsdaout*) (sparc-*-netbsd*, vax-*-netbsd*): Remove.
2013-09-23revert erroneous checkin to mi-support.expTom Tromey1-3/+0
2013-09-23(clh 9)Tom Tromey3-43/+50
2013-09-23In regcache use print_hex_chars.Andrew Burgess2-31/+13
https://sourceware.org/ml/gdb-patches/2013-09/msg00815.html gdb/ChangeLog * regcache.c: Add include of valprint.h. (dump_endian_bytes): Delete. (regcache_dump): Use print_hex_chars not dump_endian_bytes.
2013-09-23Reuse print_hex_chars.Andrew Burgess2-8/+8
https://sourceware.org/ml/gdb-patches/2013-09/msg00768.html gdb/ChangeLog * sh64-tdep.c (sh64_do_fp_register): Use print_hex_chars.
2013-09-20 * lib/dwarf.exp (build_executable_from_fission_assembler): New proc.Doug Evans8-105/+198
* gdb.dwarf2/fission-base.S: Update. Split out .dwo into separate file. * gdb.dwarf2/fission-loclists.S: Ditto. * gdb.dwarf2/fission-reread.S: Ditto. * gdb.dwarf2/fission-base.exp: Skip of remote host. Compile with build_executable_from_fission_assembler. * gdb.dwarf2/fission-loclists.exp: Ditto. * gdb.dwarf2/fission-reread.exp: Ditto.
2013-09-20 * lib/future.exp (gdb_find_objcopy, gdb_find_readelf): New procs.Doug Evans13-16/+54
* lib/gdb.exp (build_id_debug_filename_get): Update to use them. (gdb_gnu_strip_debug): Ditto. * lib/prelink-support.exp (section_get, prelink_no): Ditto. * gdb.arch/altivec-abi.exp: Ditto. * gdb.base/attach-pie-misread.exp: Ditto. * gdb.base/comprdebug.exp: Ditto. * gdb.base/dup-sect.exp: Ditto. * gdb.base/gnu-debugdata.exp: Ditto. * gdb.base/step-symless.exp: Ditto. * gdb.dwarf2/dw2-inline-param.exp: Ditto. * gdb.dwarf2/dw2-skip-prologue.exp: Ditto. * gdb.dwarf2/gdb-index.exp: Ditto.
2013-09-19Fix regressions caused by thread-specific breakpoint deletion.Pedro Alves2-1/+6
The recent change to make GDB auto-delete thread-specific breakpoints when the corresponding thread is deleted (https://sourceware.org/ml/gdb-patches/2013-09/msg00038.html) caused gdb.base/nextoverexit.exp to regress. Breakpoint 1, main () at .../gdb/testsuite/gdb.base/nextoverexit.c:21 21 exit (0); (gdb) next [Inferior 1 (process 25208) exited normally] Thread-specific breakpoint -5 deleted - thread 1 is gone. Thread-specific breakpoint -6 deleted - thread 1 is gone. Thread-specific breakpoint -7 deleted - thread 1 is gone. Thread-specific breakpoint 0 deleted - thread 1 is gone. (gdb) FAIL: gdb.base/nextoverexit.exp: next over exit (the program exited) We shouldn't be seeing this for internal or momentary breakpoints. In fact, we shouldn't even be trying to delete them, as whatever created them will take care or it, and therefore it's dangerous to delete them behind the creator's back. I thought it'd still be good to tag thread-specific internal/momentary breakpoints such that we'll no longer try to keep them insert in the target, as they'll cause stops and thread hops in other threads, so I tried disabling them instead. That caused a problem when following a child fork, and detaching from the parent, as we try to reset the step-resume etc. breakpoints to the new child's thread (breakpoint_re_set_thread), after the parent thread is already gone (and the breakpoints are marked disabled). I fixed that by re-enabling internal/momentary breakpoints there, but, that didn't feel super safe either (maybe we'd need a new flag in struct breakpoint instead, to tag the thread-specific breakpoint as "not to be inserted"). It felt like I was heading down a design rat hole, and, other things will usually delete internal/momentary breakpoints soon enough, so I left that little optimization for some other day. So, internal/momentary breakpoints are no longer deleted/disabled at all, and we end up with a one-liner fix. Tested on x86_64 Fedora 17. gdb/ 2013-09-19 Pedro Alves <palves@redhat.com> * breakpoint.c (remove_threaded_breakpoints): Skip non-user breakpoints.
2013-09-19gnu-nat.c: Don't install a deprecated_xfer_memory method.Thomas Schwinge2-20/+59
This removes another instance of a deprecated_xfer_memory user. gdb/ 2013-09-19 Pedro Alves <palves@redhat.com> Thomas Schwinge <thomas@codesourcery.com> Yue Lu <hacklu.newborn@gmail.com> * gnu-nat.c (gnu_read_inferior, gnu_write_inferior): Make static. Take a gdb_byte pointer instead of a char pointer. * gnu-nat.c (gnu_xfer_memory): Adjust interface as gnu_xfer_partial helper. (gnu_xfer_partial): New function. (gnu_target): Don't install a deprecated_xfer_memory hook. Install a to_xfer_partial hook.
2013-09-19Mostly code cleanup: Constification.Jan Kratochvil4-19/+33
gdb/ 2013-09-19 Jan Kratochvil <jan.kratochvil@redhat.com> Constification. * main.c (captured_main): Replace catch_command_errors by catch_command_errors_const. Twice. * symfile.c (symbol_file_add_main_1): Make args parameter const. (symbol_file_add): Make name parameter const. (symbol_file_add_main, symbol_file_add_main_1): Make args parameter const. (symfile_bfd_open): Make name parameter const, rename it to cname. Add variable name. Change their usage accordingly. * symfile.h (symbol_file_add, symfile_bfd_open): Make first parameter const. (symbol_file_add_main): Make args parameter const.
2013-09-182013-09-18 Raunaq Bathija <raunaq12@in.ibm.com>Ulrich Weigand2-2/+9
Ulrich Weigand <uweigand@de.ibm.com> * xcoffread.c (struct coff_symbol): Use CORE_ADDR as type of c_value member. (read_xcoff_symtab): Use CORE_ADDR as type of fcn_start_addr.
2013-09-18Also mention Yue Lu in previous commit's entry.Pedro Alves1-0/+1
2013-09-18 Pedro Alves <palves@redhat.com> Yue Lu <hacklu.newborn@gmail.com> * gnu-nat.c (inf_validate_procs, gnu_wait, gnu_resume) (gnu_create_inferior) (gnu_attach, gnu_thread_alive, gnu_pid_to_str, cur_thread) (set_sig_thread_cmd): Use the lwpid field of ptids to store/extract thread ids instead of the tid field. * i386gnu-nat.c (gnu_fetch_registers): Adjust.
2013-09-18Subject: [PATCH] [Hurd/gnu-nat.c] Use ptid_t.lwpid to store thread idsPedro Alves3-14/+23
instead of ptid_t.tid. In preparation for reusing gnu-nat.c in gdbserver, switch to storing thread ids in the lwpid field of ptid_t rather than in the tid field. The Hurd's thread model is 1:1, so it doesn't feel wrong anyway. gdb/ 2013-09-18 Pedro Alves <palves@redhat.com> * gnu-nat.c (inf_validate_procs, gnu_wait, gnu_resume) (gnu_create_inferior) (gnu_attach, gnu_thread_alive, gnu_pid_to_str, cur_thread) (set_sig_thread_cmd): Use the lwpid field of ptids to store/extract thread ids instead of the tid field. * i386gnu-nat.c (gnu_fetch_registers): Adjust.
2013-09-18Consistent display of "<optimized out>" for register values.Andrew Burgess4-19/+39
https://sourceware.org/ml/gdb-patches/2013-08/msg00170.html gdb/ChangeLog * infcmd.c (default_print_one_register_info): Add detection of optimized out values. (default_print_registers_info): Switch to using get_frame_register_value. gdb/testsuite/ChangeLog * gdb.dwarf2/dw2-reg-undefined.exp: Change pattern for info register to "<optimized out>", and also print the registers.
2013-09-18gdbserver --wrapper also doesn't work on Cygwin.Pedro Alves2-2/+9
Skip the test on Cygwin too. 2013-09-18 Pedro Alves <palves@redhat.com> PR server/15967 * gdb.server/wrapper.exp: Also return unsupported for Cygwin, and change text.
2013-09-18When reverse-stepping, only insert a resume breakpoint at ecs->stop_func_startMarkus Metzger2-1/+6
if the function start is known. Otherwise, keep single-stepping.
2013-09-18[Hurd/gnu-nat] Fix old "signal-thread" command regression.Pedro Alves2-3/+9
By inspection, I noticed that when I made the gnu-nat use ptid(pid,0,tid) to represent a thread, instead of using ptid(tid,0,0), in <https://sourceware.org/ml/gdb-patches/2008-08/msg00175.html>, I introduced a bug. The change was: else { - int tid = PIDGET (thread_id_to_pid (atoi (args))); + int tid = ptid_get_tid (thread_id_to_pid (atoi (args))); if (tid < 0) error (_("Thread ID %s not known. Use the \"info threads\" command to\n" "see the IDs of currently known threads."), args); and thread_id_to_pid does: ptid_t thread_id_to_pid (int num) { struct thread_info *thread = find_thread_id (num); if (thread) return thread->ptid; else return pid_to_ptid (-1); } (pid_to_ptid (-1) is the same as minus_one_ptid.) So before, we were really looking at the pid, where thread_id_to_pid stores the -1. The right fix is to compare the whole ptid to minus_one_ptid, of course. Completely untested, but I think it's obvious enough, so I went ahead and put it in. gdb/ 2013-09-18 Pedro Alves <palves@redhat.com> * gnu-nat.c (set_sig_thread_cmd): Compare the thread's ptid to minus_one_ptid instead of looking at the ptid's tid field and comparing that to -1.
2013-09-18Fix whitespace error in previous commit.Andrew Burgess2-1/+5
https://sourceware.org/ml/gdb-cvs/2013-09/msg00108.html https://sourceware.org/ml/gdb-patches/2013-09/msg00225.html gdb/ChangeLog * main.h (get_gdb_program_name): Remove extra whitespace.
2013-09-18Add new function to access gdb_program_name.Andrew Burgess3-0/+18
https://sourceware.org/ml/gdb-patches/2013-09/msg00225.html gdb/ChangeLog * main.h (get_gdb_program_name): Add declaration. * main.c (get_gdb_program_name): Add definition.
2013-09-18gdb/gdbserver/Yao Qi5-0/+98
2013-09-18 Yao Qi <yao@codesourcery.com> PR server/15959 * server.c (start_inferior): Clear 'resume_info'. gdb/testsuite/ 2013-09-18 Yao Qi <yao@codesourcery.com> * gdb.server/wrapper.c: New. * gdb.server/wrapper.exp: New.
2013-09-18gdb/gdbserver/Yao Qi1-0/+2
Fix ChangeLog format issue.
2013-09-17 * dwarf2read.c: Move definitions of complaint functions to afterDoug Evans2-68/+72
forward declarations of local functions.
2013-09-17PR gdb/11568 - delete thread-specific breakpoints on thread exitPedro Alves5-0/+208
PR gdb/11568 is about thread-specific breakpoints being left behind when the corresponding thread exits. Currently: (gdb) b start thread 2 Breakpoint 3 at 0x400614: file thread-specific-bp.c, line 23. (gdb) b end Breakpoint 4 at 0x40061f: file thread-specific-bp.c, line 29. (gdb) c Continuing. [Thread 0x7ffff7fcb700 (LWP 14925) exited] [Switching to Thread 0x7ffff7fcc740 (LWP 14921)] Breakpoint 4, end () at thread-specific-bp.c:29 29 } (gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fcc740 (LWP 14921) "thread-specific" end () at thread-specific-bp.c:29 (gdb) info breakpoints Num Type Disp Enb Address What 2 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 breakpoint already hit 1 time 3 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 thread 2 stop only in thread 2 4 breakpoint keep y 0x000000000040061f in end at thread-specific-bp.c:29 breakpoint already hit 1 time Note that the thread-specific breakpoint 3 stayed around, even though thread 2 is gone. There's no way that breakpoint can trigger again (*), so the PR argues that the breakpoint should just be removed, like local watchpoints. I'm ambivalent on this -- it could be reasonable to disable the breakpoint (kind of like breakpoint in shared library code when the DSO is unloaded), so the user could still use it as visual template for creating other breakpoints (copy/paste command lists, etc.), or we could have a way to change to which thread a breakpoint applies. But, several people pushed this direction, and I don't plan on arguing... (*) - actually, there is ... thread numbers are reset on "run", so the user could do "break foo thread 2", "run", and expect the breakpoint to hit again on the second thread. But given gdb's thread numbering can't really be stable, that'd only work sufficiently well for thread 1, so we'd better call it unsupported. So with the patch, whenever a thread is deleted from GDB's list, GDB goes through the thread-specific breakpoints and deletes corresponding breakpoints. Since this is user-visible, GDB prints out: Thread-specific breakpoint 3 deleted - thread 2 is gone. And of course, we end up with: (gdb) info breakpoints Num Type Disp Enb Address What 2 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 breakpoint already hit 1 time 4 breakpoint keep y 0x000000000040061f in end at thread-specific-bp.c:29 breakpoint already hit 1 time 2013-09-17 Muhammad Waqas <mwaqas@codesourcery.com> Pedro Alves <palves@redhat.com> PR gdb/11568 * breakpoint.c (remove_threaded_breakpoints): New function. (_initialize_breakpoint): Attach remove_threaded_breakpoints as thread_exit observer. 2013-09-17 Muhammad Waqas <mwaqas@codesourccery.com> Jan Kratochvil <jan.kartochvil@redhat.com> Pedro Alves <palves@redhat.com> PR gdb/11568 * gdb.thread/thread-specific-bp.c: New file. * gdb.thread/thread-specific-bp.exp: New file.
2013-09-17This commit fixes a regression introduced by the new $_isvoid convenienceSergio Durigan Junior2-0/+6
function. It adds a check for $_isvoid during the test of "show convenience" output. gdb/testsuite/ 2013-09-17 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/defaults.exp (<show_conv_list>): Add check for $_isvoid convenience function.
2013-09-17PR gdb/15911: "info threads" changes the default source and line (for ↵Pedro Alves21-36/+194
"break", "list") "info threads" changes the default source for "break" and "list", to whatever the location of the first/bottom thread in the thread list is... (gdb) b start (gdb) c ... (gdb) list *lists "start"* (gdb) b 23 Breakpoint 3 at 0x400614: file test.c, line 23. (gdb) info threads Id Target Id Frame * 2 Thread 0x7ffff7fcb700 (LWP 1760) "test" start (arg=0x0) at test.c:23 1 Thread 0x7ffff7fcc740 (LWP 1748) "test" 0x000000323dc08e60 in pthread_join (threadid=140737353922304, thread_return=0x0) at pthread_join.c:93 (gdb) b 23 Breakpoint 4 at 0x323dc08d90: file pthread_join.c, line 23. ^^^^^^^^^^^^^^^ (gdb) list 93 lll_wait_tid (pd->tid); 94 95 96 /* Restore cancellation mode. */ 97 CANCEL_RESET (oldtype); 98 99 /* Remove the handler. */ 100 pthread_cleanup_pop (0); 101 102 The issue is that print_stack_frame always sets the current sal to the frame's sal. print_frame_info (which print_stack_frame calls to do most of the work) also sets the last displayed sal, but only if print_what isn't LOCATION. Now the call in question, from within thread.c:print_thread_info, does pass in LOCATION as print_what, but print_stack_frame doesn't have the same check print_frame_info has. We could consider adding it, but setting these globals depending on print_what isn't very clean, IMO. What we have is two logically distinct operations mixed in the same function(s): #1 - print frame, in the format specified by {print_what, print_level and print_args}. #2 - We're displaying a frame to the user, and I want the default sal to point here, because the program stopped here, or the user did some context-changing command (up, down, etc.). So I added a new parameter to print_stack_frame & friends for point #2, and went through all calls in the tree adjusting as necessary. Tested on x86_64 Fedora 17. gdb/ 2013-09-17 Pedro Alves <palves@redhat.com> PR gdb/15911 * ada-tasks.c (task_command_1): Adjust call to print_stack_frame. * bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): * corelow.c (core_open): * frame.h (print_stack_frame, print_frame_info): New 'set_current_sal' parameter. * infcmd.c (finish_command, kill_command): Adjust call to print_stack_frame. * inferior.c (inferior_command): Likewise. * infrun.c (normal_stop): Likewise. * linux-fork.c (linux_fork_context): Likewise. * record-full.c (record_full_goto_entry, record_full_restore): Likewise. * remote-mips.c (common_open): Likewise. * stack.c (print_stack_frame): New 'set_current_sal' parameter. Use it. (print_frame_info): New 'set_current_sal' parameter. Set the last displayed sal depending on the new paremeter instead of looking at print_what. (backtrace_command_1, select_and_print_frame, frame_command) (current_frame_command, up_command, down_command): Adjust call to print_stack_frame. * thread.c (print_thread_info, restore_selected_frame) (do_captured_thread_select): Adjust call to print_stack_frame. * tracepoint.c (tfind_1): Likewise. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames) (mi_cmd_stack_info_frame): Likewise. * mi/mi-interp.c (mi_on_normal_stop): Likewise. * mi/mi-main.c (mi_cmd_exec_return, mi_cmd_trace_find): Likewise. gdb/testsuite/ * gdb.threads/info-threads-cur-sal-2.c: New file. * gdb.threads/info-threads-cur-sal.c: New file. * gdb.threads/info-threads-cur-sal.exp: New file.
2013-09-17 Fix ChangeLog entry missing a ':' char.Luis Machado1-1/+1
2013-09-17 gdbserver/ChangeLogJiong Wang2-1/+5
* linux-tile-low.c (tile_regsets): Modify the size field to 64-bit for each register.