aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2016-10-21Use gdb::unique_ptr in elf_read_minimal_symbolsTom Tromey2-8/+7
This changes elf_read_minimal_symbols to use gdb::unique_ptr rather than an explicit allocation. This removes a cleanup. 2016-10-21 Tom Tromey <tom@tromey.com> * elfread.c (elf_read_minimal_symbols): Use gdb::unique_ptr.
2016-10-21Replace two xmallocs with unique_ptrTom Tromey2-11/+13
This replaces a couple of uses of xmalloc with gdb::unique_ptr, also removing a couple of cleanups. 2016-10-21 Tom Tromey <tom@tromey.com> * cli/cli-dump.c (dump_memory_to_file): Use gdb::unique_ptr. (restore_binary_file): Likewise.
2016-10-21Change command stats reporting to use classTom Tromey5-97/+104
This removes make_command_stats_cleanup in favor of an RAII class. The patch is reasonably straightforward, but keeping the same semantics without excessive reindentation required splitting captured_main in two. 2016-10-21 Tom Tromey <tom@tromey.com> * maint.h (scoped_command_stats): New class. (make_command_stats_cleanup): Don't declare. * maint.c (struct cmd_stats): Remove. (~scoped_command_stats): Rename from report_command_stats. Now a destructor. (scoped_command_stats): Rename from make_command_stats_cleanup. Now a constructor. * main.c (captured_main_1): New function. Use scoped_command_stats. (captured_main): Call captured_main_1. * event-top.c (command_handler): Use scoped_command_stats.
2016-10-21Remove some cleanups in MITom Tromey2-7/+9
This patch removes a couple of cleanups from MI by using gdb::unique_ptr. 2016-10-21 Tom Tromey <tom@tromey.com> * mi/mi-main.c (mi_cmd_data_read_memory): Use gdb::unique_ptr. Remove some cleanups.
2016-10-21Remove make_cleanup_restore_current_uiTom Tromey8-202/+118
This removes make_cleanup_restore_current_ui by converting the last use. The last use was in a few functions used to iterate over all UIs. This patch replaces these functions with a class, and arranges for the class destructor to do the needed cleanup. 2016-10-21 Tom Tromey <tom@tromey.com> * tui/tui-interp.c (tui_on_normal_stop, tui_on_signal_received) (tui_on_end_stepping_range, tui_on_signal_exited, tui_on_exited) (tui_on_no_history, tui_on_user_selected_context_changed): Update. * top.h (switch_thru_all_uis): New class. (SWITCH_THRU_ALL_UIS): Rewrite. (make_cleanup_restore_current_ui, switch_thru_all_uis_init) (switch_thru_all_uis_cond, switch_thru_all_uis_next): Don't declare. * mi/mi-interp.c (mi_new_thread, mi_thread_exit) (mi_record_changed, mi_inferior_added, mi_inferior_appeared) (mi_inferior_exit, mi_inferior_removed, mi_on_signal_received) (mi_on_end_stepping_range, mi_on_signal_exited, mi_on_exited) (mi_on_no_history, mi_on_normal_stop, mi_traceframe_changed) (mi_tsv_created, mi_tsv_deleted, mi_tsv_modified) (mi_breakpoint_created, mi_breakpoint_deleted) (mi_breakpoint_modified, mi_output_running_pid, mi_on_resume) (mi_solib_loaded, mi_solib_unloaded, mi_command_param_changed) (mi_memory_changed, mi_user_selected_context_changed): Update. * infrun.c (all_uis_check_sync_execution_done) (all_uis_on_sync_execution_starting, normal_stop): Update. * event-top.c (restore_ui_cleanup) (make_cleanup_restore_current_ui, switch_thru_all_uis_init) (switch_thru_all_uis_cond, switch_thru_all_uis_next): Remove. * cli/cli-interp.c (cli_on_normal_stop, cli_on_signal_received) (cli_on_end_stepping_range, cli_on_signal_exited, cli_on_exited) (cli_on_no_history, cli_on_user_selected_context_changed): Update. * breakpoint.c (watchpoint_check): Update.
2016-10-21Record minimal symbols directly in reader.Tom Tromey13-232/+271
This patch changes minimal symbol creation in two ways. First, it removes global variables in favor of members of minimal_symbol_reader. Second, it changes functions like prim_record_minimal_symbol to be member functions of minimal_symbol_reader. 2016-10-21 Tom Tromey <tom@tromey.com> * xcoffread.c (record_minimal_symbol, scan_xcoff_symtab): Add "reader" argument. Update. (xcoff_initial_scan): Update. * symfile.h (mdebug_build_psymtabs): Add "reader" argument. * mipsread.c (mipscoff_symfile_read): Update. (read_alphacoff_dynamic_symtab): Add "reader" argument. Update. * minsyms.h (minimal_symbol_reader) <record, record_full>: Declare. <m_msym_bunch, m_msym_bunch_index, m_msym_count>: New members. <record_with_info>: New function, renamed from prim_record_minimal_symbol_and_info. * minsyms.c (msym_bunch, msym_bunch_index, msym_count): Remove globals. (minimal_symbol_reader): Initialize new members. (minimal_symbol_reader::record): Renamed from prim_record_minimal_symbol. (minimal_symbol_reader::record_full): Renamed from prim_record_minimal_symbol_full. (prim_record_minimal_symbol_and_info): Move to minsyms.h; rename. * mdebugread.c (mdebug_build_psymtabs, parse_partial_symbols) (record_minimal_symbol): Add "reader" argument. Update. (elfmdebug_build_psymtabs): Update. * machoread.c (macho_symtab_add_minsym, macho_symtab_read): Add "reader" argument. Update. (macho_symfile_read): Update. * elfread.c (record_minimal_symbol, elf_symtab_read) (elf_rel_plt_read): Add "reader" argument. Update. (elf_read_minimal_symbols): Update. * dbxread.c (record_minimal_symbol, read_dbx_dynamic_symtab) (read_dbx_symtab): Add "reader" argument. Update. (dbx_symfile_read): Update. * coffread.c (record_minimal_symbol, coff_symtab_read): Add "reader" argument. Update. (coff_symfile_read): Update. * coff-pe-read.h (read_pe_exported_syms): Add "reader" argument. * coff-pe-read.c (add_pe_exported_sym, add_pe_forwarded_sym) (read_pe_exported_syms): Add "reader" argument. Update.
2016-10-21Change minimal_symbol_reader to store objfileTom Tromey10-33/+52
This changes minimal_symbol_reader to require the objfile to be passed to the constructor. The class now records the objfile and automatically uses it later in "install". This is a minor cleanup that will come in useful in the next patch. It is separate from the first patch to keep that one a bit simpler to understand. 2016-10-21 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_initial_scan): Update. * mipsread.c (mipscoff_symfile_read): Update. * minsyms.c (minimal_symbol_reader): Add obj argument. Initialize member. (install): Remove objfile argument. Update. * mdebugread.c (elfmdebug_build_psymtabs): Update. * machoread.c (macho_symfile_read): Update. * elfread.c (elf_read_minimal_symbols): Update. * dbxread.c (dbx_symfile_read): Update. * coffread.c (coff_symfile_read): Update. * minsyms.h (minimal_symbol_reader): Add m_objfile member. (constructor): Add objfile argument. (minimal_symbol_reader::install): Remove objfile argument.
2016-10-21Introduce minimal_symbol_readerTom Tromey10-82/+89
This patch introduced minimal_symbol_reader, a RAII-based class which replaces the current make_cleanup_discard_minimal_symbols. 2016-10-21 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_initial_scan): Use minimal_symbol_reader. * mipsread.c (mipscoff_symfile_read): Use minimal_symbol_reader. * minsyms.h (minimal_symbol_reader): New class. (init_minimal_symbol_collection) (make_cleanup_discard_minimal_symbols, install_minimal_symbols): Don't declare. * minsyms.c (minimal_symbol_reader): Renamed from init_minimal_symbol_collection, turned into constructor. (~minimal_symbol_reader): Renamed from do_discard_minimal_symbols_cleanup, turned into destructor. (make_cleanup_discard_minimal_symbols): Remove. (minimal_symbol_reader::install): Rename form install_minimal_symbols. * mdebugread.c (elfmdebug_build_psymtabs): Use minimal_symbol_reader. * machoread.c (macho_symfile_read): Use minimal_symbol_reader. * elfread.c (elf_read_minimal_symbols): Use minimal_symbol_reader. * dbxread.c (dbx_symfile_read): Use minimal_symbol_reader. * coffread.c (coff_symfile_read): Use minimal_symbol_reader.
2016-10-21Use scoped_restore for current_uiTom Tromey4-31/+31
This changes most uses of make_cleanup_restore_current_ui to use scoped_restore. The use in switch_thru_all_uis_init still remains; that is dealt with in a later patch by replacing this iterator with a real class. 2016-10-21 Tom Tromey <tom@tromey.com> * top.c (new_ui_command, wait_sync_command_done) (gdb_readline_wrapper): Use scoped_restore. * infrun.c (fetch_inferior_event): Use scoped_restore. * infcall.c (call_thread_fsm_should_stop): Use scoped_restore.
2016-10-21Use scoped_restore for ui_fileTom Tromey5-48/+23
This replaces all the uses of make_cleanup_restore_ui_file with scoped_restore. 2016-10-21 Tom Tromey <tom@tromey.com> * utils.c (make_cleanup_restore_ui_file, do_restore_ui_file) (struct restore_ui_file_closure): Remove. * utils.h (make_cleanup_restore_ui_file): Don't declare. * guile/scm-ports.c (ioscm_with_output_to_port_worker): Use scoped_restore. * top.c (execute_command_to_string): Use scoped_restore.
2016-10-21Use RAII to save and restore scalarsTom Tromey13-77/+155
This patch replaces many (but not all) uses of make_cleanup_restore_integer with a simple RAII-based template class. It also removes the similar restore_execution_direction cleanup in favor of this new class. Subsequent patches will replace other similar cleanups with this class. The class is typically instantiated using make_scoped_restore. This allows for template argument deduction. 2016-10-21 Tom Tromey <tom@tromey.com> * common/scoped_restore.h: New file. * utils.h: Include scoped_restore.h. * top.c (execute_command_to_string): Use scoped_restore. * python/python.c (python_interactive_command): Use scoped_restore. (python_command, execute_gdb_command): Likewise. * printcmd.c (do_one_display): Use scoped_restore. * mi/mi-main.c (exec_continue): Use scoped_restore. * mi/mi-cmd-var.c (mi_cmd_var_assign): Use scoped_restore. * linux-fork.c (checkpoint_command): Use scoped_restore. * infrun.c (restore_execution_direction): Remove. (fetch_inferior_event): Use scoped_restore. * compile/compile.c (compile_file_command): Use scoped_restore. (compile_code_command, compile_print_command): Likewise. * cli/cli-script.c (execute_user_command): Use scoped_restore. (while_command, if_command, script_from_file): Likewise. * arm-tdep.c (arm_insert_single_step_breakpoint): Use scoped_restore.
2016-10-21Fix build failure in xcoffread.cTom Tromey2-1/+5
This changes read_xcoff_symtab to be const-correct. This fixes a build failure. 2016-10-21 Tom Tromey <tom@tromey.com> * xcoffread.c (read_xcoff_symtab): Make "filestring" const.
2016-10-21Fix symbol table file name on AIXUlrich Weigand2-1/+7
When xlc -qfuncsect or gcc -ffunction-sections options is used in AIX, each function csect is associated with each psymtab, so each psymtab will have it's corresponding filename entries set. If the pst filename isn't set then we will be seeing the below output when we set a breakpoint. (gdb) br main Breakpoint 1 at 0x10000374: file _start_ , line 18. With the fix it will be. (gdb) br main Breakpoint 1 at 0x10000518: file test.c, line 24. Attached patch resolve this issue and correct filename will be set. gdb/ 2016-10-21 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com> Ulrich Weigand <uweigand@de.ibm.com> * xcoffread.c (read_xcoff_symtab): Make name of current file as pst->filename instead of _start_ in AIX. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2016-10-21Delete target_so_ops->special_symbol_handling hookPhilipp Rudo9-67/+18
No one(!) actually implements this hook. So simply delete it. gdb/ChangeLog: * solist.h (struct target_so_ops): Delete special_symbol_handling hook. * solib.c (solib_add, reload_shared_libraries): Adjust. * solib-aix.c (solib_aix_special_symbol_handling): Delete (_initialize_solib_aix): Adjust * solib-darwin.c (darwin_special_symbol_handling): Delete (_initialize_darwin_solib): Adjust * solib-dsbt.c (dsbt_special_symbol_handling): Delete (_initialize_dsbt_solib): Adjust * solib-frv.c (frv_special_symbol_handling): Delete (_initialize_frv_solib): Adjust * solib-svr4.c (svr4_special_symbol_handling): Delete (_initialize_svr4_solib): Adjust * solib-target.c (solib_target_special_symbol_handling): Delete (_initialize_solib_target): Adjust
2016-10-20testsuite: Fix gcc_compiled for gcc 6 & 7Jan Kratochvil2-6/+6
gdb/testsuite/ChangeLog 2016-10-20 Jan Kratochvil <jan.kratochvil@redhat.com> * lib/gdb.exp (get_compiler_info): Generalize gcc_compile regexp.
2016-10-20Don't configure gdb for vxworks targetYao Qi2-0/+5
VxWorks support was removed in 2004. commit e84ecc995d6a5e4e9114d3cea61717b8a573afb6 Author: Andrew Cagney <cagney@redhat.com> Date: Sat Nov 13 23:10:02 2004 +0000 2004-11-13 Andrew Cagney <cagney@gnu.org> * configure.tgt: Delete i[34567]86-*-vxworks*, m68*-netx-*, m68*-*-vxworks*, mips*-*-vxworks*, powerpc-*-vxworks*, and sparc-*-vxworks*. * NEWS: Mention that vxworks was deleted. This patch adds *-*-vxworks* in a list of targets GDB doesn't support. gdb: 2016-10-20 Yao Qi <yao.qi@linaro.org> * configure.tgt: Don't configure if target is *-*-vxworks*.
2016-10-19testsuite: Fix gdb.base/killed-outside.exp using irrelevant stale optionsMaciej W. Rozycki2-1/+6
Fix a commit 4a556533cf02 ("Fix PR11094: JIT breakpoint is not properly recreated on reruns") regression: Running .../gdb/testsuite/gdb.base/killed-outside.exp ... Executing on host: mips-mti-linux-gnu-gcc -Wl,--no-as-needed -c -g -o .../gdb/testsuite/outputs/gdb.base/killed-outside/killed-outside0.o .../gdb/testsuite/gdb.base/killed-outside.c .../gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple-jit.so (timeout = 300) spawn mips-mti-linux-gnu-gcc -Wl,--no-as-needed -c -g -o .../gdb/testsuite/outputs/gdb.base/killed-outside/killed-outside0.o .../gdb/testsuite/gdb.base/killed-outside.c .../gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple-jit.so mips-mti-linux-gnu-gcc: warning: .../gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple-jit.so: linker input file unused because linking not done output is: mips-mti-linux-gnu-gcc: warning: .../gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple-jit.so: linker input file unused because linking not done gdb compile failed, mips-mti-linux-gnu-gcc: warning: .../gdb/testsuite/outputs/gdb.base/jit-simple/jit-simple-jit.so: linker input file unused because linking not done UNTESTED: gdb.base/killed-outside.exp: failed to prepare and adjust the call to `prepare_for_testing' by removing a reference to `options', which is not set in this test case but a stale value is carried over from `gdb.base/jit-simple.exp' previously executed in a full test suite run. gdb/testsuite/ * gdb.base/killed-outside.exp: Remove $options from a call to `prepare_for_testing'.
2016-10-19Regen gdb/config.inPedro Alves2-3/+7
gdb/ChangeLog: 2016-10-19 Pedro Alves <palves@redhat.com> * config.in: Regenerate.
2016-10-18gdb: no longer define __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROSPedro Alves2-16/+5
My gnulib fix at: https://lists.gnu.org/archive/html/bug-gnulib/2015-11/msg00010.html was merged upstream meanwhile and our gnulib copy now includes it. As a concidence, Kevin was telling me today that these macros are causing a build problem on FreeBSD: common/common-defs.h:47:0: error: "__STDC_CONSTANT_MACROS" redefined [-Werror] #define __STDC_CONSTANT_MACROS 1 /usr/include/sys/cdefs.h:408:0: note: this is the location of the previous definition #define __STDC_CONSTANT_MACROS (and a similar error for __STDC_LIMIT_MACROS) The problem seems to be that we should be defining these input macros before including any system header, but, we're not. So let's just revert e063da67902e ([C++] Define __STDC_CONSTANT_MACROS / __STDC_LIMIT_MACROS for stdint.h). If this causes a problem somewhere, we can re-define the macros higher up in the file, before system headers are included. gdb/ChangeLog: 2016-10-18 Pedro Alves <palves@redhat.com> * common/common-defs.h (__STDC_CONSTANT_MACROS) (__STDC_LIMIT_MACROS): Delete.
2016-10-18Update gnulib to current upstream masterPedro Alves174-766/+2178
I tried building gdb with G++ 4.7 and CXX="g++ -std=gnu+11", and that tripped on a build error: In file included from build-gnulib/import/stdio.h:53:0, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/common/common-defs.h:31, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/defs.h:28, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/armobsd-tdep.c:20: build-gnulib/import/stddef.h:104:3: error: conflicting declaration ‘typedef union max_align_t max_align_t’ In file included from build-gnulib/import/stddef.h:55:0, from build-gnulib/import/stdio.h:53, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/common/common-defs.h:31, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/defs.h:28, from /home/pedro/gdb/mygit/cxx-convertion/src/gdb/armobsd-tdep.c:20: /opt/gcc-4.7/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/include/stddef.h:426:3: error: ‘max_align_t’ has a previous declaration as ‘typedef struct max_align_t max_align_t’ Updating gnulib to current master fixes it, since it brings in this fix: http://lists.gnu.org/archive/html/bug-gnulib/2016-04/msg00000.html Our last update was in August 2015. This doesn't bring in much added baggage, it's mostly bug fixes. It pulled in the "limits-h" module as automatic dependency, and given that looks potentially useful I added it to the set of modules we require. Tested on x86_64 Fedora 23, with g++ 4.7 and g++ 5.3, native and gdbserver. gdb/ChangeLog: 2016-10-18 Pedro Alves <palves@redhat.com> * gnulib/update-gnulib.sh (GNULIB_COMMIT_SHA1): Set to 2692e23a48e21f6daa029e8af9f1a143b7532f47. * gnulib/configure, gnulib/config.in, gnulib/aclocal.m4: Regenerate. * gnulib/import/Makefile: Update. * gnulib/import/alloca: Update. * gnulib/import/basename-lgpl: Update. * gnulib/import/canonicalize-lgpl: Update. * gnulib/import/config: Update. * gnulib/import/dirent: Update. * gnulib/import/dirfd: Update. * gnulib/import/dirname-lgpl: Update. * gnulib/import/dirname.h: Update. * gnulib/import/dosname.h: Update. * gnulib/import/errno: Update. * gnulib/import/extra/snippet/arg-nonnull.h: Update. * gnulib/import/extra/snippet/c++defs.h: Update. * gnulib/import/extra/snippet/warn-on-use.h: Update. * gnulib/import/extra/update-copyright: Update. * gnulib/import/flexmember.h: Update. * gnulib/import/float+.h: Update. * gnulib/import/float: Update. * gnulib/import/float: Update. * gnulib/import/fnmatch: Update. * gnulib/import/fnmatch: Update. * gnulib/import/fnmatch_loop: Update. * gnulib/import/fpucw.h: Update. * gnulib/import/frexp: Update. * gnulib/import/frexpl: Update. * gnulib/import/gettimeofday: Update. * gnulib/import/hard-locale: Update. * gnulib/import/hard-locale.h: Update. * gnulib/import/inttypes: Update. * gnulib/import/isnan: Update. * gnulib/import/isnand-nolibm.h: Update. * gnulib/import/isnand: Update. * gnulib/import/isnanl-nolibm.h: Update. * gnulib/import/isnanl: Update. * gnulib/import/itold: Update. * gnulib/import/limits: Update. * gnulib/import/localcharset: Update. * gnulib/import/localcharset.h: Update. * gnulib/import/lstat: Update. * gnulib/import/m4/00gnulib: Update. * gnulib/import/m4/absolute-header: Update. * gnulib/import/m4/alloca: Update. * gnulib/import/m4/canonicalize: Update. * gnulib/import/m4/codeset: Update. * gnulib/import/m4/configmake: Update. * gnulib/import/m4/dirent_h: Update. * gnulib/import/m4/dirfd: Update. * gnulib/import/m4/dirname: Update. * gnulib/import/m4/double-slash-root: Update. * gnulib/import/m4/eealloc: Update. * gnulib/import/m4/errno_h: Update. * gnulib/import/m4/exponentd: Update. * gnulib/import/m4/exponentl: Update. * gnulib/import/m4/extensions: Update. * gnulib/import/m4/extern-inline: Update. * gnulib/import/m4/fcntl-o: Update. * gnulib/import/m4/flexmember: Update. * gnulib/import/m4/float_h: Update. * gnulib/import/m4/fnmatch: Update. * gnulib/import/m4/fpieee: Update. * gnulib/import/m4/frexp: Update. * gnulib/import/m4/frexpl: Update. * gnulib/import/m4/gettimeofday: Update. * gnulib/import/m4/glibc21: Update. * gnulib/import/m4/gnulib-cache: Update. * gnulib/import/m4/gnulib-common: Update. * gnulib/import/m4/gnulib-comp: Update. * gnulib/import/m4/gnulib-tool: Update. * gnulib/import/m4/hard-locale: Update. * gnulib/import/m4/include_next: Update. * gnulib/import/m4/inttypes-pri: Update. * gnulib/import/m4/inttypes: Update. * gnulib/import/m4/isnand: Update. * gnulib/import/m4/isnanl: Update. * gnulib/import/m4/largefile: Update. * gnulib/import/m4/limits-h: Update. * gnulib/import/m4/localcharset: Update. * gnulib/import/m4/locale-fr: Update. * gnulib/import/m4/locale-ja: Update. * gnulib/import/m4/locale-zh: Update. * gnulib/import/m4/longlong: Update. * gnulib/import/m4/lstat: Update. * gnulib/import/m4/malloc: Update. * gnulib/import/m4/malloca: Update. * gnulib/import/m4/math_h: Update. * gnulib/import/m4/mbrtowc: Update. * gnulib/import/m4/mbsinit: Update. * gnulib/import/m4/mbsrtowcs: Update. * gnulib/import/m4/mbstate_t: Update. * gnulib/import/m4/memchr: Update. * gnulib/import/m4/memmem: Update. * gnulib/import/m4/mmap-anon: Update. * gnulib/import/m4/multiarch: Update. * gnulib/import/m4/nocrash: Update. * gnulib/import/m4/off_t: Update. * gnulib/import/m4/pathmax: Update. * gnulib/import/m4/rawmemchr: Update. * gnulib/import/m4/readlink: Update. * gnulib/import/m4/rename: Update. * gnulib/import/m4/rmdir: Update. * gnulib/import/m4/signal_h: Update. * gnulib/import/m4/ssize_t: Update. * gnulib/import/m4/stat: Update. * gnulib/import/m4/stdbool: Update. * gnulib/import/m4/stddef_h: Update. * gnulib/import/m4/stdint: Update. * gnulib/import/m4/stdio_h: Update. * gnulib/import/m4/stdlib_h: Update. * gnulib/import/m4/strchrnul: Update. * gnulib/import/m4/string_h: Update. * gnulib/import/m4/strstr: Update. * gnulib/import/m4/strtok_r: Update. * gnulib/import/m4/sys_socket_h: Update. * gnulib/import/m4/sys_stat_h: Update. * gnulib/import/m4/sys_time_h: Update. * gnulib/import/m4/sys_types_h: Update. * gnulib/import/m4/time_h: Update. * gnulib/import/m4/unistd_h: Update. * gnulib/import/m4/warn-on-use: Update. * gnulib/import/m4/wchar_h: Update. * gnulib/import/m4/wchar_t: Update. * gnulib/import/m4/wctype_h: Update. * gnulib/import/m4/wint_t: Update. * gnulib/import/malloc: Update. * gnulib/import/malloca: Update. * gnulib/import/malloca.h: Update. * gnulib/import/math: Update. * gnulib/import/math: Update. * gnulib/import/mbrtowc: Update. * gnulib/import/mbsinit: Update. * gnulib/import/mbsrtowcs-impl.h: Update. * gnulib/import/mbsrtowcs-state: Update. * gnulib/import/mbsrtowcs: Update. * gnulib/import/memchr: Update. * gnulib/import/memmem: Update. * gnulib/import/pathmax.h: Update. * gnulib/import/rawmemchr: Update. * gnulib/import/readlink: Update. * gnulib/import/ref-add.sin: Update. * gnulib/import/ref-del.sin: Update. * gnulib/import/rename: Update. * gnulib/import/rmdir: Update. * gnulib/import/same-inode.h: Update. * gnulib/import/signal: Update. * gnulib/import/stat: Update. * gnulib/import/stdbool: Update. * gnulib/import/stddef: Update. * gnulib/import/stdint: Update. * gnulib/import/stdio: Update. * gnulib/import/stdlib: Update. * gnulib/import/str-two-way.h: Update. * gnulib/import/strchrnul: Update. * gnulib/import/streq.h: Update. * gnulib/import/string: Update. * gnulib/import/stripslash: Update. * gnulib/import/strnlen1: Update. * gnulib/import/strnlen1.h: Update. * gnulib/import/strstr: Update. * gnulib/import/strtok_r: Update. * gnulib/import/sys_stat: Update. * gnulib/import/sys_time: Update. * gnulib/import/sys_types: Update. * gnulib/import/time: Update. * gnulib/import/unistd: Update. * gnulib/import/unistd: Update. * gnulib/import/verify.h: Update. * gnulib/import/wchar: Update. * gnulib/import/wctype: Update. * gnulib/import/flexmember.h: New file. * gnulib/import/hard-locale.c: New file. * gnulib/import/hard-locale.h: New file. * gnulib/import/limits.in.h: New file. * gnulib/import/m4/flexmember.m4: New file. * gnulib/import/m4/hard-locale.m4: New file. * gnulib/import/m4/limits-h.m4: New file.
2016-10-18Introduce gdb::unique_ptrPedro Alves3-0/+394
Many make_cleanup uses in the code base are best eliminated by using a "owning" smart pointer to manage ownership of the resource automatically. The question is _which_ smart pointer. GDB currently supports building with a C++03 compiler. We have std::auto_ptr in C++03, but, as is collective wisdom by now, that's too easy to misuse, and has therefore been deprecated in C++11 and finally removed in C++17. It'd be nice to be able to use std::unique_ptr instead, which is the modern, safe std::auto_ptr replacement in C++11. In addition to extra safety -- moving (i.e., transfer of ownership of the managed pointer between smart pointers) must be explicit -- std::unique_ptr has (among others) one nice feature that std::auto_ptr doesn't --- ability to specify a custom deleter as template parameter. In gdb's context, that allows easily creating a smart pointer for memory allocated with xmalloc -- the smart pointer then knows to release with xfree instead of delete. This is particularly interesting when managing objects allocated in C libraries, and also, for C++-fying parts of GDB that interact with other parts that still return objects allocated with xmalloc. Since std::unique_ptr's API is quite nice, and eventually we'd like to move to C++11, this patch adds a C++03-compatible smart pointer that exposes the subset of the std::unique_ptr API that we're interested in. An advantage is that whenever we start requiring C++11, we won't have to learn a new API. Meanwhile, this allows continuing to support building with a C++03 compiler. Since C++03 doesn't support rvalue references (boost gets close to emulating them, but it's not fully transparent to user code), the C++03 std::unique_ptr emulation here doesn't try hard to prevent accidentally moving, which is where most of complication of a more thorough emulation would be. Instead, we rely on the fact that GDB will be usually compiled with a C++11 compiler, and use the real std::unique_ptr in that case to catch such accidental moves. IOW, the goal here is to allow code that would be correct using std::unique_ptr to be equally correct in C++03 mode, and, just as efficient. The C++03 version was originally based on GCC 7.0's std::auto_ptr and then heavily customized to behave more like C++11's std::unique_ptr: - Support for custom (stateless) deleters. (Support for stateful deleters could be added, if necessary.) - unique_ptr<T[]> partial specialization (auto_ptr<T> does not know to use delete[]). - Support for all of 'ptr != NULL', 'ptr == NULL' and 'if (ptr)' using the safe bool idiom to emulate C++11's explicit bool operator. - There's no nullptr in C++03, so this allows initialization and assignment from NULL instead (std::auto_ptr allows neither). - Variable names un-uglified (ie., no leading __ prefix everywhere). - Formatting made to follow GDB's coding conventions, including comment style. - Converting "move" constructors done differently in order to truly support: unique_ptr<Derived> func_returning_unique_ptr (.....); ... unique_ptr<Base> ptr = func_returning_unique_ptr (.....); At this point, it no longer shares much at all with the original file, but, that's the history. See comments in the code to find out more. I thought of putting the "emulation" / shim in the "std" namespace, so that when we start requiring C++11 at some point, no actual changes to users of the smart pointer throughout would be necessary. Putting things in the std namespace is technically undefined, however in practice it doesn't cause any issue with any compiler. However, thinking that people might be confused with seeing std::unique_ptr and thinking that we're actually requiring C++11 already, I put the new types in the "gdb" namespace instead. For managing xmalloc pointers, this adds a gdb::unique_xmalloc_ptr<T> "specialization" with a custom xfree deleter. No actual use of any smart pointer is introduced in this patch. That'll be done in following patches. Tested (along with the rest of the series) on: - NetBSD 5.1 (gcc70 on the compile farm), w/ gcc 4.1.3 - x86-64 Fedora 23, gcc 5.3.1 (gnu++03) - x86-64 Fedora 23, and gcc 7.0 (gnu++14) gdb/ChangeLog: 2016-10-18 Pedro Alves <palves@redhat.com> * common/common-defs.h: Include "gdb_unique_ptr.h". * common/gdb_unique_ptr.h: New.
2016-10-18i386-tdep: Verify architecture before proceeding with `set/show mpx'Maciej W. Rozycki2-2/+10
Make sure the architecture is `bfd_arch_i386' before handling the `set mpx' and `show mpx' commands, avoiding the issue with `i386_mpx_enabled' interpreting `gdbarch->tdep' according to the `struct gdbarch_tdep' definition in i386-tdep.h while indeed in a multi-target configuration it may have a different layout and cause GDB to crash or at least misbehave. gdb/ * i386-tdep.c (i386_mpx_info_bounds): Make sure the architecture is `bfd_arch_i386' before proceeding. (i386_mpx_set_bounds): Likewise.
2016-10-18tilegx-tdep: Correct aliasing errors in `tilegx_analyze_prologue'Maciej W. Rozycki2-1/+6
Fix a load of aliasing build errors: cc1plus: warnings being treated as errors .../gdb/tilegx-tdep.c: In function 'CORE_ADDR tilegx_analyze_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, tilegx_frame_cache*, frame_info*)': .../gdb/tilegx-tdep.c:609: error: dereferencing pointer 'operands' does break strict-aliasing rules .../gdb/tilegx-tdep.c:592: error: dereferencing pointer 'operands' does break strict-aliasing rules .../gdb/tilegx-tdep.c:571: error: dereferencing pointer 'operands' does break strict-aliasing rules [...] .../gdb/tilegx-tdep.c:601: error: dereferencing pointer '<anonymous>' does break strict-aliasing rules .../gdb/tilegx-tdep.c:601: note: initialized from here cc1plus: error: dereferencing pointer 'operands' does break strict-aliasing rules cc1plus: error: dereferencing pointer 'operands' does break strict-aliasing rules .../gdb/tilegx-tdep.c:452: note: initialized from here cc1plus: error: dereferencing pointer 'pretmp.896' does break strict-aliasing rules cc1plus: note: initialized from here cc1plus: error: dereferencing pointer 'pretmp.896' does break strict-aliasing rules cc1plus: note: initialized from here make[1]: *** [tilegx-tdep.o] Error 1 from an attempt to cast a `long long' pointer to an `int64_t' pointer, which may not necessarily be compatible types. Use the `long long' type for the auxiliary variable then as this is the type of the structure member referred. gdb/ * tilegx-tdep.c (tilegx_analyze_prologue): Use the `long long' type for `operands'.
2016-10-17Fix duplicate test message in mi-trace-save.expSimon Marchi2-1/+6
gdb/testsuite/ChangeLog: * gdb.trace/mi-trace-save.exp (test_trace_save_wrong_num_args): Change test message.
2016-10-17Fix comment in mi-trace-save.expSimon Marchi2-1/+6
This fixes a comment I forgot to update in the previous patch. gdb/testsuite/ChangeLog: * gdb.trace/mi-trace-save.exp (test_trace_save_wrong_num_args): Update comment.
2016-10-17Fix -trace-save crash when argument is missingSimon Marchi4-0/+56
-trace-save doesn't check whether an argument is passed, leading to a segfault if you pass nothing. I added a small test, which only tests the error conditions of -trace-save. gdb/ChangeLog: * mi/mi-main.c (mi_cmd_trace_save): Check if argument is present before using it. gdb/testsuite/ChangeLog: * gdb.trace/mi-trace-save.exp: New file.
2016-10-17gdb: Fix phony iconv buildPedro Alves2-0/+9
Cross building gdb for mingw32 on Fedora 23 fails with: x86_64-w64-mingw32-g++ -g -O2 [...] ../../src/gdb/charset.c In file included from ../../src/gdb/charset.c:21:0: ../../src/gdb/charset.h:134:3: error: 'iconv_t' does not name a type iconv_t m_desc; ^ ../../src/gdb/charset.c: In constructor 'wchar_iterator::wchar_iterator(const gdb_byte*, size_t, const char*, size_t)': ../../src/gdb/charset.c:600:3: error: 'm_desc' was not declared in this scope m_desc = iconv_open (INTERMEDIATE_ENCODING, charset); ^ ../../src/gdb/charset.c: In destructor 'wchar_iterator::~wchar_iterator()': ../../src/gdb/charset.c:607:7: error: 'm_desc' was not declared in this scope if (m_desc != (iconv_t) -1) ^ ../../src/gdb/charset.c: In member function 'int wchar_iterator::iterate(wchar_iterate_result*, gdb_wchar_t**, const gdb_byte**, size_t*)': ../../src/gdb/charset.c:633:25: error: 'm_desc' was not declared in this scope size_t r = iconv (m_desc, &inptr, &m_bytes, &outptr, &out_avail); ^ This is a regression caused by commit cda6c55bd399 (Turn wchar iterator into a class). The problem is that iconv_t is now exposed in gdb/charset.h, while before it was only used in gdb/charset.c. gdb/charset.c, under #ifdef PHONY_ICONV, does: #undef iconv_t #define iconv_t int So it seems the simplest is to use 'int' in the header file too. gdb/ChangeLog: 2016-10-17 Pedro Alves <palves@redhat.com> * charset.h (class wchar_iterator) [PHONY_ICONV] <m_desc>: Use 'int' as type.
2016-10-14Fix typos in trace commands docSimon Marchi2-2/+7
gdb/doc/ChangeLog: * gdb.texinfo (Using Trace Files): Fix typo. (GDB/MI Tracepoint Commands): Likewise.
2016-10-14Document -ctf switch of -trace-saveSimon Marchi2-1/+10
The -trace-save MI command supports saving the trace in the CTF format, as its CLI counterpart, but it's not documented. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Tracepoint Commands): Document -ctf switch of -trace-save.
2016-10-14Fix set sysroot command on AIXUlrich Weigand2-6/+22
set sysroot command on AIX has no effect if a program depends on shared library archives (.a). Fixed by using solib_find and solib_bfd_fopen instead of gdb_bfd_open in solib_aix_bfd_open. gdb/ 2016-10-14 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com> Ulrich Weigand <uweigand@de.ibm.com> * solib-aix.c (solib_aix_bfd_open): Call solib_find so that sysroot path is set properly if program has a dependency on .a archive and sysroot is set via set sysroot command. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2016-10-14btrace: remove leftover commentMarkus Metzger2-5/+4
Remove a leftover comment on a function that was removed with commit 0568462bbf0f666d5bf9f720e16147da71eec46a.
2016-10-14Include strings.h where availableEli Zaretskii2-0/+8
gdb/ChangeLog 2016-10-14 Eli Zaretskii <eliz@gnu.org> * common/common-defs.h [HAVE_STRINGS_H]: Include strings.h if available, to get prototypes of 'strcasecmp' and 'strncasecmp'.
2016-10-13ARI: Remove true/false checksPedro Alves2-21/+6
These don't make sense with C++. gdb/ChangeLog: 2016-10-13 Pedro Alves <palves@redhat.com> * contrib/ari/gdb_ari.sh (boolean): Suggest bool instead. (false, true): Remove checks.
2016-10-13Share proc get_var_addressYao Qi5-66/+31
This patch moves proc get_var_address into lib/gdb.exp, and remove the duplicate copy in gdb.base/*.exp files. gdb/testsuite: 2016-10-13 Yao Qi <yao.qi@linaro.org> * gdb.base/code_elim.exp (get_var_address): Remove. * gdb.base/relocate.exp: Likewise. * gdb.base/shreloc.exp: Likewise. * lib/gdb.exp (get_var_address): New.
2016-10-13Skip testing structures with floating pointsYao Qi2-56/+68
This patch skips some tests related to floating point in structs.exp if gdb_skip_float_test return false. gdb/testsuite: 2016-10-13 Yao Qi <yao.qi@linaro.org> * gdb.base/structs.exp: Invoke gdb_skip_float_test, and do floating point tests if $skip_float_test is false.
2016-10-12Use std::string in macho_symfile_read_all_osoTom Tromey2-13/+11
This changes macho_symfile_read_all_oso to use std::string. This avoids a cleanup. 2016-10-12 Tom Tromey <tom@tromey.com> * machoread.c (macho_symfile_read_all_oso): Use std::string.
2016-10-12Remove unnecessary null_cleanupTom Tromey2-3/+6
This patch removes an unnecessary null_cleanup. 2016-10-12 Tom Tromey <tom@tromey.com> * tracepoint.c (trace_dump_command): Remove unnecessary null_cleanup.
2016-10-12Turn wchar iterator into a classTom Tromey4-132/+116
This changes wchar_iterator from charset.c into a real C++ class, then updates the users to use the class. This lets us remove some cleanups in favor of the class' destructor. 2016-10-12 Tom Tromey <tom@tromey.com> * valprint.c (generic_emit_char, count_next_character) (generic_printstr): Update. * charset.c (struct wchar_iterator): Move to charset.h. (wchar_iterator::wchar_iterator): Rename from make_wchar_iterator, turn into a constructor. (wchar_iterator::~wchar_iterator): Rename from do_cleanup_iterator, turn into a destructor. (make_cleanup_wchar_iterator): Remove. (wchar_iterator::iterate): Rename from wchar_iterate. Remove "iter" argument. Update. * charset.h: Include <vector>. (class wchar_iterator): New class, from old struct wchar_iterator. (make_wchar_iterator, make_cleanup_wchar_iterator): Don't declare.
2016-10-12Change selttest.c to use use std::vectorTom Tromey2-13/+14
This patch changes selftest.c to use std::vector rather than VEC. I think this is a small net plus. 2016-10-12 Tom Tromey <tom@tromey.com> * selftest.c: Include <vector>, not "vec.h". (self_test_function_ptr): Remove. (tests): Now a std::vector. (register_self_test, run_self_tests): Update.
2016-10-13Convert tid_range_parser and get_number_or_range to classesPedro Alves13-359/+401
This converts tid_range_parser and get_number_or_range to be classes. The various tid_range_parser_* and get_number_or_range_* functions become methods on the respective classes. Then it updates the users to follow. The rationale for the change is that this provides better encapsulation. For example, this forced me to think of a better interface between tid_range_parser and get_number_or_range, since the former peeked into the latter's internals a bit too much. That ended up resulting mostly in these two not-just-straight-1-1 changes: void -tid_range_parser_skip (struct tid_range_parser *parser) +tid_range_parser::skip_range () { ... - tid_range_parser_init (parser, parser->range_parser.end_ptr, - parser->default_inferior); + m_range_parser.skip_range (); + init (m_range_parser.string (), m_default_inferior); } and: /* If we successfully parsed a thread number or finished parsing a thread range, switch back to assuming the next TID is inferior-qualified. */ - if (parser->range_parser.end_ptr == NULL - || parser->range_parser.string == parser->range_parser.end_ptr) + if (!m_range_parser.in_range ()) { For the same reason (encapsulation), this moves the enum tid_range_state definition to within the tid_parser class's scope, since that is private implementation detail. While at it, switch to use "bool" for booleans. gdb/ChangeLog: 2016-10-13 Pedro Alves <palves@redhat.com> Tom Tromey <tom@tromey.com> * tid-parse.h (tid_range_parser): New class. (enum tid_range_state): Move into tid_range_parser's scope. Remove TID_RANGE_ prefix from all values. (tid_range_parser_get_tid, tid_range_parser_get_tid_range) (tid_range_parser_star_range, tid_range_parser_finished) (tid_range_parser_skip, tid_range_parser_qualified): Don't declare. (tid_is_in_list): Update comment. * tid-parse.c (tid_range_parser::tid_range_parser): New. (init, finished, get_string, skip, tid_is_qualified) (get_tid_or_range, get_tid_range, get_tid, star_range): Rename; turn into methods. (tid_is_in_list): Adjust. * cli/cli-utils.h (number_or_range_parser): New class. (init_number_or_range, get_number_or_range) (number_range_setup_range): Don't declare. * cli/cli-utils.c (number_or_range_parser::number_or_range_parser): New. (init_number_or_range, get_number_or_range) (number_range_setup_range): Rename; turn into methods. (number_is_in_list): Adjust. * breakpoint.c (map_breakpoint_numbers): Adjust. Use bool. (trace_pass_command, get_tracepoint_by_number): Adjust. * breakpoint.h (get_tracepoint_by_number): Adjust. * inferior.c (detach_inferior_command, kill_inferior_command) (remove_inferior_command): Adjust. * linespec.c (decode_line_2): Adjust. * memattr.c (mem_enable_command, mem_disable_command) (mem_delete_command): Adjust. * printcmd.c (map_display_numbers): Adjust. * reverse.c (delete_bookmark_command, bookmarks_info): Adjust. * thread.c (thread_apply_command): Adjust.
2016-10-12Fixup gdb.python/py-value.exp for bare-metal aarch64-elfLuis Machado3-5/+21
I noticed that testing aarch64-elf gdb with a physical board ran into issues with gdb.python/py-value.exp. Further investigation showed that we were actually trying to dereference a NULL pointer (argv) when trying to access argv[0]. Being bare-metal, argv is not guaranteed to be valid. So we need to make sure argv is sane before accessing argv[0]. The following patch fixes up the test program to check for a NULL argv and also improves the testcase a bit so it doesn't have to work with a hardcoded argc value. Regression-tested on x86-64 Ubuntu 16.04. gdb/testsuite/ChangeLog: 2016-10-12 Luis Machado <lgustavo@codesourcery.com> * gdb.python/py-value.c (main): Check if argv is NULL before using it. * gdb.python/py-value.exp (test_value_in_inferior): Don't use hardcoded argc values. Add 1 to argc so we guarantee distinct initial/modified argc values.
2016-10-12arc: Add support for NewlibAnton Kolesov3-1/+80
Add support for Newlib as an OS/ABI. The only thing that is specific to it relatively to "generic" baremetal target is location of PC register in jump buffer for longjump support. Sniffer uses .ivt section to decide if ELF file is for ARC Newlib or not. gdb/ChangeLog: * arc-newlib-tdep.c: New file. * configure.tgt: Add newlib support for ARC.
2016-10-12arc: Add evaluation of long jump targetsAnton Kolesov3-1/+39
Standard get_longjmp_target implementation, similar to what is in arm-tdep.c. Actual value of jb_pc should be set in init_osabi methods of particular OS/ABI implementations. gdb/ChangeLog: * arc-tdep.h (struct gdbarch_tdep) <jb_pc>: New field. * arc-tdep.c (arc_get_longjmp_target): New function. (arc_gdbarch_init): Set get_longjmp_target if jb_pc is non-negative. (arc_dump_tdep): Print jb_pc.
2016-10-12arc: Add a gdbarch_tdep structureAnton Kolesov3-1/+15
Add target-specific structure gdbarch_tdep for ARC. gdb/ChangeLog: * arc-tdep.h (struct gdbarch_tdep): New. * arc-tdep.c (arc_gdbarch_init): Allocate gdbarch_tdep.
2016-10-12[AArch64] Track FP registers in prologue analyzerYao Qi3-7/+43
We don't track FP registers in aarch64 prologue analyzer, so this causes an internal error when FP registers are saved by "stp" instruction in prologue (stp d8, d9, [sp,#128]), tbreak _Unwind_RaiseException^M aarch64-tdep.c:335: internal-error: CORE_ADDR aarch64_analyze_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, aarch64_prologue_cache*): Assertion `inst.operands[0].type == AARCH64_OPND_Rt' failed.^M A problem internal to GDB has been detected, This patch teaches GDB to track FP registers (D registers) in prologue analyzer. gdb: 2016-10-12 Yao Qi <yao.qi@linaro.org> PR tdep/20682 * aarch64-tdep.c: Replace 32 with AARCH64_D_REGISTER_COUNT. (aarch64_analyze_prologue): Extend array 'regs' for D registers. Assert that operand 0 and 1 can be X or D registers. Update register number for D registers. Update registers in frame cache. * aarch64-tdep.h (AARCH64_D_REGISTER_COUNT): New macro.
2016-10-11testsuite: Fix gdb.arch/powerpc-prologue.c compilationJan Kratochvil2-0/+5
gcc-6.2.1 gdb compile failed, gdb/testsuite/gdb.arch/powerpc-prologue.c: In function 'main': gdb/testsuite/gdb.arch/powerpc-prologue.c:32:3: warning: implicit declaration of function 'optimized_1' [-Wimplicit-function-declaration] optimized_1 (); ^~~~~~~~~~~ gdb/testsuite/ChangeLog 2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.arch/powerpc-prologue.c (optimized_1): New declaration.
2016-10-11testsuite: Use standard_output_fileJan Kratochvil4-4/+10
gdb/testsuite/ChangeLog 2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.arch/powerpc-prologue.exp: Use standard_output_file. * gdb.arch/ppc64-symtab-cordic.exp: Likewise. * gdb.arch/vsx-regs.exp: Likewise.
2016-10-10Share enum arm_breakpoint_kindsYao Qi5-9/+19
This patch shares "enum arm_breakpoint_kinds", and use ARM_BP_KIND_THUMB2 in GDB. gdb: 2016-10-10 Yao Qi <yao.qi@linaro.org> * arch/arm.h (enum arm_breakpoint_kinds): New. * arm-tdep.c (arm_remote_breakpoint_from_pc): Use ARM_BP_KIND_THUMB2. gdb/gdbserver: 2016-10-10 Yao Qi <yao.qi@linaro.org> * linux-aarch32-low.c (enum arm_breakpoint_kinds): Remove.
2016-10-10Rename 'arch' by 'gdbarch' in m32c_gdbarch_initYao Qi2-21/+26
This patch renames local 'arch' by 'gdbarch' in m32c_gdbarch_init, so that I can use macros in the following patch. gdb: 2016-10-10 Yao Qi <yao.qi@linaro.org> * m32c-tdep.c (m32c_gdbarch_init): Rename local 'arch' by 'gdbarch'.
2016-10-10Remove v850_dbtrap_breakpoint_from_pcYao Qi2-26/+30
v850 has two functions to install to gdbarch_breakpoint_from_pc, and it selects one according to info.bfd_arch_info->mach. However, we can select the kind/length of breakpoint instruction inside v850_breakpoint_from_pc by gdbarch_bfd_arch_info (gdbarch)->mach. This patch is to do that, and remove v850_dbtrap_breakpoint_from_pc. gdb: 2016-08-30 Yao Qi <yao.qi@linaro.org> * v850-tdep.c (v850_breakpoint_from_pc): Use the right breakpoint instruction. (v850_dbtrap_breakpoint_from_pc): Remove. (v850_gdbarch_init): Update.