aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-03PR21294, Binary size regression on PPC embeddedAlan Modra2-1/+8
PR 21294 * NEWS: Note that defaulting to -z relro results in increased memory and disk size.
2017-10-03Automatic date update in version.inGDB Administrator1-1/+1
2017-10-03ld -z relro documentationAlan Modra2-6/+18
* ld.texinfo (-z relro): Expand description. (DATA_SEGMENT_ALIGN): Note that -z relro is not effective when running with system page size larger than commonpagesize. (DATA_SEGMENT_RELRO_END): Be explicit about the alignment.
2017-10-02Fix &str printing in RustTom Tromey5-8/+48
Printing a string slice ("&str") in Rust would print until the terminating \0; but that is incorrect because a slice has a length. This fixes &str printing, and arranges to preserve the type name when slicing a slice, so that printing a slice of an "&str" works as well. This is PR rust/22236. 2017-10-02 Tom Tromey <tom@tromey.com> PR rust/22236: * rust-lang.c (rust_val_print_str): New function. (val_print_struct): Call it. (rust_subscript): Preserve name of slice type. 2017-10-02 Tom Tromey <tom@tromey.com> PR rust/22236: * gdb.rust/simple.rs (main): New variable "fslice". * gdb.rust/simple.exp: Add slice tests. Update string tests.
2017-10-02Fix ptype of Rust slicesTom Tromey4-3/+67
Something like "ptype &x[..]" (where "x" was a slice) would crash gdb. rust_subscript wasn't handling slicing in the EVAL_AVOID_SIDE_EFFECTS case. 2017-10-02 Tom Tromey <tom@tromey.com> * rust-lang.c (rust_subscript): Handle slices in EVAL_AVOID_SIDE_EFFECTS case. 2017-10-02 Tom Tromey <tom@tromey.com> * gdb.rust/simple.exp: Test ptype of a slice.
2017-10-02Allow indexing of &str in RustTom Tromey4-1/+12
rust_slice_type_p was not recognizing &str as a slice type, so indexing into (or making a slice of) a slice was not working. 2017-10-02 Tom Tromey <tom@tromey.com> * rust-lang.c (rust_slice_type_p): Recognize &str as a slice type. 2017-10-02 Tom Tromey <tom@tromey.com> * gdb.rust/simple.exp: Test index of slice.
2017-10-02Add missing "extern" in rust-lang.hTom Tromey2-2/+6
I noticed that one function in rust-lang.h was not declared using "extern". In the interested of uniformity, this patch adds it. Tested by rebuilding. 2017-10-02 Tom Tromey <tom@tromey.com> * rust-lang.h (rust_slice_type): Add "extern".
2017-10-02Fix GDB build with G++ 4.8Pedro Alves3-4/+12
G++ 4.8 trips on: In file included from /opt/gcc-4.8/include/c++/4.8.5/algorithm:62:0, from ../../src/gdb/ada-lang.c:65: /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h: In instantiation of ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >; _Tp = ada_exc_info]’: /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2283:70: required from ‘_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >]’ /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2315:54: required from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >; _Size = long int]’ /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:5461:36: required from ‘void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<ada_exc_info*, std::vector<ada_exc_info> >]’ ../../src/gdb/ada-lang.c:13153:61: required from here /opt/gcc-4.8/include/c++/4.8.5/bits/stl_algo.h:2245:19: error: passing ‘const ada_exc_info’ as ‘this’ argument of ‘bool ada_exc_info::operator<(const ada_exc_info&)’ discards qualifiers [-fpermissive] while (__pivot < *__last) ^ Seems to be a libstdc++ bug meanwhile fixed by: https://gcc.gnu.org/ml/libstdc++/2012-04/msg00074. In any case, there's no reason these methods can't be const. gdb/ChangeLog: 2017-10-02 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * ada-lang.h (ada_exc_info::operator<): Make const. (ada_exc_info::operator==): Make const. * ada-lang.c (ada_exc_info::operator<, ada_exc_info::operator==): Make const.
2017-10-02nto & lynx x86: call init_target_descSimon Marchi3-2/+17
In gdbserver, target descriptions need to be initialized by calling init_target_desc. Because i386_create_target_description is shared with GDB, it doesn't do that, the callers must take care of it. These two platforms currently don't. I am not able to build them, so I couldn't test. gdb/gdbserver/ChangeLog: * lynx-i386-low.c (lynx_i386_arch_setup): Call init_target_desc. * nto-x86-low.c (nto_x86_arch_setup): Likewise.
2017-10-02Fix powerpc comment typoAlan Modra3-2/+7
* elf32-ppc.c (ppc_elf_relocate_section): Fix comment typo. * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
2017-10-02Automatic date update in version.inGDB Administrator1-1/+1
2017-10-01PR22232, NULL pointer dereference in load_specific_debug_sectionAlan Modra2-2/+10
PR 22232 PR 22230 * objdump.c (load_specific_debug_section): Introduce a temp to stop bfd_get_full_section_contents NULLing out section->start.
2017-10-01PR21970, assertion failed when more than one overlay has subalign specifiedAlan Modra2-0/+6
PR 21970 * ldlang.c (lang_leave_overlay): Reset overlay_subalign.
2017-10-01PR21957, addr2line incorrectly handles non-increasing sequences in line tableAlan Modra2-4/+9
PR 21957 * dwarf2.c (new_line_sorts_after): Remove end_sequence comparison. (add_line_info): Always put end_sequence last.
2017-10-01Add new mnemonics for VLE multiple load instructionsAlexander Fedotov6-0/+86
opcodes/ * ppc-opc.c (vle_opcodes): Add e_lmvsprw, e_lmvgprw, e_lmvsrrw, e_lmvcsrrw and e_lmvcsrrw as official mnemonics for VLE multimple load/store instructions. Old e_ldm* variants are kept as aliases. Add missing e_lmvmcsrrw and e_stmvmcsrrw. gas/ * testsuite/gas/ppc/vle-mult-ld-st-insns.s: New file: Tests the support for the VLE multiple load/store instructions. * testsuite/gas/ppc/vle-mult-ld-st-insns.d: New file: Test driver. * testsuite/gas/ppc/ppc.exp: Run it.
2017-10-01PR22047, Heap out of bounds read in parse_comp_unitAlan Modra2-38/+22
Like the PR22230 fix, we can allocate a buffer with an extra byte rather than letting bfd_simple_get_relocated_section_contents malloc and return a buffer. Much better than allocating another buffer afterwards. PR 22047 * dwarf2.c (read_section): Allocate buffer with extra byte for bfd_simple_get_relocated_section_contents rather than copying afterwards.
2017-10-01PR22230, buffer overflow in display_debug_macroAlan Modra2-4/+11
PR 22230 * objdump.c (load_specific_debug_section): Allocate an extra byte for a terminating NUL.
2017-10-01Automatic date update in version.inGDB Administrator1-1/+1
2017-09-30Add a test for PR binutils/21978H.J. Lu5-0/+20
PR binutils/21978 * testsuite/ld-elf/pr21978.od: New file. * testsuite/ld-elf/pr21978a.c: Likewise. * testsuite/ld-elf/pr21978b.c: Likewise. * testsuite/ld-elf/shared.exp: Run PR binutils/21978 test.
2017-09-29Remove free_memory_read_result_vectorTom Tromey4-96/+66
This changes read_memory_robust to return a std::vector, allowing the removal of free_memory_read_result_vector and associated cleanups. This patch also changes the functions it touches to be a bit more robust with regards to deallocation; it's perhaps possible that read_memory_robust could have leaked in some situations. This patch is based on my earlier series to remove some MI cleanups. Regression tested by the buildbot. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * target.c (read_whatever_is_readable): Change type of "result". Update. (free_memory_read_result_vector): Remove. (read_memory_robust): Change return type. Update. * mi/mi-main.c (mi_cmd_data_read_memory_bytes): Update. Use bin2hex, std::string. * target.h (memory_read_result_s): Remove typedef. (free_memory_read_result_vector): Remove. (read_memory_robust): Return std::vector.
2017-09-29Change captured_mi_execute_command to use scoped_restoreTom Tromey2-6/+7
Change captured_mi_execute_command to use a scoped_restore, removing a cleanup. The old code copied the current token, but I don't believe that is necessary. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-main.c (captured_mi_execute_command): Use scope_restore.
2017-09-29Use a std::vector for ada_exceptions_listTom Tromey4-71/+61
Change ada_exceptions_list to return a std::vector and fix up the users. This allows removing a cleanup in MI. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions): Update. * ada-lang.h (struct ada_exc_info): Remove typedef. Declare operator< and operator==. (ada_exceptions_list): Return a std::vector. * ada-lang.c (ada_exc_info::operator<): Rename from compare_ada_exception_info. (ada_exc_info::operator==): New. (sort_remove_dups_ada_exceptions_list): Change type of "exceptions". (ada_add_standard_exceptions, ada_add_exceptions_from_frame) (ada_add_global_exceptions): Likewise. (ada_exceptions_list_1): Return a std::vector. (ada_exceptions_list): Likewise.
2017-09-29Use std::set in mi-main.cTom Tromey2-59/+31
Change a couple of spots in mi-main.c to use std::set. This simplifies the code and removes some cleanups. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-main.c (struct print_one_inferior_data) <inferiors>: Now a 'std::set *'. (print_one_inferior): Update. (free_vector_of_ints): Remove. (list_available_thread_groups): Change "ids" to std::set. (mi_cmd_list_thread_groups): Update. (struct collect_cores_data) <core>: Now a std::set. (collect_cores): Update. (unique): Remove. (print_one_inferior): Update.
2017-09-29Use std::string in mi-main.cTom Tromey2-31/+16
Change a couple of spots in mi-main.c to use std::string, and change one place to use field_fmt. This removes some cleanups. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-main.c (mi_execute_cli_command): Use std::string. (mi_execute_async_cli_command): Likewise. (mi_cmd_trace_frame_collected): Use field_fmt.
2017-09-29Use gdb::byte_vector in mi_cmd_data_write_memory_bytesTom Tromey2-13/+12
This changes mi_cmd_data_write_memory_bytes to use gdb::byte_vector, removing some cleanups. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-main.c (mi_cmd_data_write_memory_bytes): Use gdb::byte_vector.
2017-09-29Remove unused declarationTom Tromey2-1/+4
There was a leftover cleanup declaration in mi_parse. Remove it. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-parse.c (mi_parse): Remove unused declaration.
2017-09-29Don't copy a string in mi_cmd_disassembleTom Tromey2-5/+5
This string copy in mi_cmd_disassemble seems not to be needed, so don't do it. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-cmd-disas.c (mi_cmd_disassemble): Don't copy "oarg".
2017-09-29Remove cleanups from mi-cmd-var.cTom Tromey4-34/+20
This removes some cleanups from mi-cmd-var.c. varobj_gen_name now returns a string, simplifying mi_cmd_var_create. In mi_cmd_var_delete, a string copy is apparently unnecessary, so it's simply removed. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * varobj.h (varobj_gen_name): Return std::string. * varobj.c (varobj_gen_name): Return std::string. * mi/mi-cmd-var.c (mi_cmd_var_create): Use std::string. (mi_cmd_var_delete): Don't copy "name".
2017-09-29Remove cleanups from mi_cmd_break_insert_1Tom Tromey2-30/+25
This changes mi_argv_to_format to return a string, allowing the removal of some cleanups. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mi/mi-cmd-break.c (mi_argv_to_format): Return std::string. (mi_cmd_break_insert_1): Update.
2017-09-29Remove make_cleanup_defer_target_commit_resumeTom Tromey4-40/+44
This removes make_cleanup_defer_target_commit_resume in favor of using scoped_restore. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * target.h (make_scoped_defer_target_commit_resume): Update. * target.c (make_scoped_defer_target_commit_resume): Rename from make_cleanup_defer_target_commit_resume. Return a scoped_restore. * infrun.c (proceed): Use make_scoped_defer_target_commit_resume.
2017-09-29Remove some unused declarationsTom Tromey3-3/+5
This removes a couple of unused cleanup-related declarations. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * main.c (captured_main_1): Remove unused declaration. * spu-multiarch.c (parse_spufs_run): Remove unused declaration.
2017-09-29Remove a cleanup from symtab.cTom Tromey2-8/+6
This removes an unused outer cleanup from symtab.c, and an unused cleanup declaration as well. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * symtab.c (search_symbols): Remove unused outer cleanup. (make_source_files_completion_list): Remove unused declaration.
2017-09-29Remove cleanup from mt-tdep.cTom Tromey2-8/+9
Remove a cleanup from mt-tdep.c, using gdb::byte_vector. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * mt-tdep.c (mt_push_dummy_call): Use gdb::byte_vector.
2017-09-29Remove cleanup from xstormy16-tdep.cTom Tromey2-8/+10
This removes a cleanup from xstormy16-tdep.c, using gdb::byte_vector. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * xstormy16-tdep.c (xstormy16_push_dummy_call): Use gdb::byte_vector.
2017-09-29Remove cleanup from complaints.cTom Tromey2-6/+7
This removes a cleanup from complaints.c by using std::string. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * complaints.c (vcomplaint): Use std::string.
2017-09-29Remove some cleanups from tracepoint.cTom Tromey2-30/+18
This removes some cleanups from tracepoint.c by using std::string. It also removes some unused cleanup declarations. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * tracepoint.c (trace_variable_command): Use std::string. (encode_actions_1): Remove unused declarations. (create_tsv_from_upload): Use std::string.
2017-09-29Remove cleanups from cp-support.cTom Tromey2-15/+14
This removes some cleanups from cp-support.c, using std::string. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * cp-support.c (gdb_demangle): Use std::string.
2017-09-29Remove some cleanups from stack.cTom Tromey2-15/+10
This removes some cleanups from stack.c by using std::string or gdb::unique_xmalloc_ptr. One cleanup remains in this file; I did not remove it here because it is handled in another patch series that has yet to be resolved. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * stack.c (parse_frame_specification): Use std::string (info_frame_command): Use gdb::unique_xmalloc_ptr.
2017-09-29Remove cleanup from tilegx-tdep.cTom Tromey2-8/+9
This removes a cleanup from tilegx-tdep.c, by using gdb::byte_vector. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * tilegx-tdep.c (tilegx_push_dummy_call): Use gdb::byte_vector.
2017-09-29Remove cleanups from utils.cTom Tromey2-16/+12
This removes a couple of cleanups from utils.c through the use of std::string. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * utils.c (vfprintf_maybe_filtered): Use std::string. (vfprintf_unfiltered): Likewise.
2017-09-29Remove cleanup from display_gdb_promptTom Tromey2-16/+14
This removes a cleanup from display_gdb_prompt by using std::string. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * event-top.c (top_level_prompt): Return std::string. (display_gdb_prompt): Update.
2017-09-29Introduce string_vprintfTom Tromey4-0/+56
This adds string_vprintf, a va_list variant of string_printf. This will be used in later patches. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * unittests/common-utils-selftests.c (format): New function. (string_vprintf_tests): New function. (_initialize_common_utils_selftests): Register new tests. * common/common-utils.c (string_vprintf): New function. * common/common-utils.h (string_vprintf): Declare.
2017-09-30PR21978, objdump does not display line numbers in certain casesAlan Modra2-12/+24
Same line but different file ought to display file and line. PR 21978 * objdump.c: Formatting. (show_line): Reset prev_line when function name changes.
2017-09-30Automatic date update in version.inGDB Administrator1-1/+1
2017-09-29Constify unpack_varlen_hex & fix falloutPedro Alves16-82/+115
I ran into non-const unpack_varlen_hex while working on something else, and decided to just fix it first. Ends up constifying a good deal of remote packet parsing. gdb/ChangeLog: 2017-09-29 Pedro Alves <palves@redhat.com> * common/rsp-low.c (unpack_varlen_hex): Constify. * common/rsp-low.h (unpack_varlen_hex): Constify. * linux-nat.c (linux_child_static_tracepoint_markers_by_strid): Constify. * remote.c (remote_set_permissions, read_ptid) (remote_current_thread, remote_get_threads_with_qthreadinfo) (remote_static_tracepoint_marker_at) (remote_static_tracepoint_markers_by_strid) (stop_reply_extract_thread, remote_parse_stop_reply): Constify. * tracepoint.c (parse_trace_status, parse_tracepoint_status) (parse_tracepoint_definition, parse_tsv_definition) (parse_static_tracepoint_marker_definition): Constify. * tracepoint.h (parse_static_tracepoint_marker_definition) (parse_trace_status, parse_tracepoint_status) (parse_tracepoint_definition, parse_tsv_definition): Constify. gdb/gdbserver/ChangeLog: 2017-09-29 Pedro Alves <palves@redhat.com> * ax.c (gdb_parse_agent_expr): Constify. * ax.h (gdb_parse_agent_expr): Constify. * mem-break.c (add_breakpoint_condition, add_breakpoint_commands): Constify. * mem-break.h (add_breakpoint_condition, add_breakpoint_commands): Constify. * remote-utils.c (hex_or_minus_one, read_ptid): Constify. * remote-utils.h (read_ptid): Constify. * server.c (handle_qxfer_exec_file, handle_query, handle_v_cont) (process_point_options, process_serial_event): Constify. * tracepoint.c (add_tracepoint_action, cmd_qtdp, cmd_qtdpsrc) (cmd_qtdv, cmd_qtenable_disable, cmd_qtro, cmd_qtframe, cmd_qtp) (cmd_qtbuffer): Constify.
2017-09-29gdb/remote.c: Eliminate target_buf/target_buf_size hackPedro Alves2-65/+78
This finally eliminates an old hack left in place when tracepoint RSP support was migrated from tracepoint.c to remote.c, back in 35b1e5cca081 ("Make tracepoint operations go through target vector.") over 7 years ago. Tested on x86_64 GNU/Linux. gdb/ChangeLog: 2017-09-29 Pedro Alves <palves@redhat.com> * remote.c (target_buf, target_buf_size): Delete. (remote_get_noisy_reply): Remove buf_p and sizeof_buf parameters. Use the connection's packet buffer instead. All callers adjusted. (_initialize_remote): Remove references to target_buf and target_buf_size.
2017-09-29gdbserver/libthread_db: Don't ignore memory reading failuresPedro Alves2-1/+7
If we had this in place before, then the regression fixed by the previous commit would have been been visible is all test runs. E.g.: Running src/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp ... FAIL: gdb.threads/multi-create-ns-info-thr.exp: continue to breakpoint 6 Debugging manually we'd see this: gdbserver: Cannot get thread handle for LWP 1467: generic error Instead of: gdbserver: PID mismatch! Expected 27472, got 27471 which is misleading - gdbserver didn't 27471, that was stale stack data from previous function invocations. gdb/gdbserver/ChangeLog: 2017-09-29 Pedro Alves <palves@redhat.com> * proc-service.c (ps_pdread): Return PS_ERR if reading memory fails.
2017-09-29Fix gdbserver regression exposed by gdb.threads/multi-create-ns-info-thr.expPedro Alves4-5/+26
Commit 8629910955a7 ("Add thread_db_notice_clone to gdbserver") introduced calls into libthread_db without making sure that the current thread is pointing to a know-stopped thread. This resulted in sometimes thread_db_notice_clone failing->find_one_thread failing like this, as seen when running gdb.threads/multi-create-ns-info-thr.exp: ~~~ Thread <6> executing Thread <7> executing gdbserver: PID mismatch! Expected 27472, got 27471 gdbserver: Cannot find thread after clone. Thread <1000> executing Thread <1001> executing ~~~ Things go south from here and sometimes that ends up resulting in gdbserver crashing and the test failing. gdb/gdbserver/ChangeLog: 2017-09-29 Pedro Alves <palves@redhat.com> * linux-low.c (handle_extended_wait): Pass parent thread instead of process to thread_db_notice_clone. * linux-low.h (thread_db_notice_clone): Replace parent process parameter with parent thread parameter. * thread-db.c (find_one_thread): Add comment. (thread_db_notice_clone): Replace parent process parameter with parent thread parameter. Temporarily switch to the parent thread.
2017-09-29Fail when string merge can't alloc memoryAlan Modra2-7/+15
I was looking at Debian bug #874674 again today, and think I might have spotted the problem. It appears that merge.c tries to cope with memory allocation failures in some circumstances, but doesn't quite manage to get everything right. This patch will make ld report memory allocation failures instead of silently not merging strings. * merge.c (merge_strings): Return FALSE on malloc failure. (_bfd_merge_sections): Return failures from record_section and merge_strings.
2017-09-29Automatic date update in version.inGDB Administrator1-1/+1