- Dec 22, 2020
-
-
Anton Kolesov authored
This patch adds the necessary infrastructure to handle signal frames for ARC architecture. It is fairly similar to what any other architecture would have. Linux specific parts will be in a separate patch. v2 [1]: - Make the logic of "arc_sigtramp_frame_sniffer ()" simpler. [1] Tom's remark for the first version https://sourceware.org/pipermail/gdb-patches/2020-November/173221.html gdb/ChangeLog: * arc-tdep.c (arc_make_sigtramp_frame_cache): New function. (arc_sigtramp_frame_this_id): Likewise. (arc_sigtramp_frame_prev_register): Likewise. (arc_sigtramp_frame_sniffer): Likewise. (arc_siftramp_frame_unwind): New global variable. (arc_gdbarch_init): Use sigtramp capabilities. (arc_dump_tdep): Print sigtramp fields. * arc-tdep.h (gdbarch_tdep): Add sigtramp fields.
-
GDB Administrator authored
-
Tom Tromey authored
For the expression rewrite series, I needed to move enum noside earlier in expression.h. Because this is a pure move, and because it seems harmless and uncontroversial to move an enum definition earlier in a file, I'm pushing it in early, to reduce the size of that series. Tested by rebuilding. gdb/ChangeLog 2020-12-21 Tom Tromey <tom@tromey.com> * expression.h (enum noside): Move earlier.
-
- Dec 21, 2020
-
-
Peter Waller authored
Calls through interpreter_exec_cmd can cause the output state to be modified in a way which doesn't get back after the execution. It looks like the intent is that interp::resume should put things back how they should be, however, mi_interp::resume modifies gdb_stdout and nothing currently restores it to the previous state. To see the broken behaviour: gdb -ex starti -ex bt -ex 'interpreter-exec mi echo' -ex bt -ex q echo <<<'' Prior to this patch, on a terminal environment, the first backtrace is coloured, and the second backtrace is not. The reason is that stdio_file::can_emit_style_escape becomes false, because the gdb_stdout gets overwritten in mi_interp::resume and not replaced. gdb/ChangeLog: * interps.c (interpreter_exec_cmd): Restore streams pointers. gdb/testsuite/ChangeLog: * gdb.base/style-interp-exec-mi.exp: New. * gdb.base/style-interp-exec-mi.c: New. Signed-off-by:Peter Waller <p@pwaller.net> Change-Id: Id87423b262d058857ea9dca5866ca6471741e512
-
Simon Marchi authored
Use gdb_test instead of send_gdb + gdb_expect. Use proc_with_prefix to help with name uniqueness. gdb/testsuite/ChangeLog: * gdb.base/list.exp: Replace send_gdb + gdb_expect with gdb_test. Use proc_with_prefix. Change-Id: Ieee8fb2c80f596f60397fab7633773a7f8c8c879
-
Markus Metzger authored
For 32-bit position independent executables, GCC generates an extra call to __x86.get_pc_thunk.<reg> which appears in the function call history. It is correct to appear there but this confuses the tests, which check for an expected sequence of functions. Build with nopie to avoid this complication. gdb/testsuite/ChangeLog: 2020-12-04 Markus Metzger <markus.t.metzger@intel.com> * gdb.btrace/exception.exp: Build with nopie. * gdb.btrace/function_call_history.exp: Likewise. * gdb.btrace/unknown_functions.exp: Likewise. -
Markus Metzger authored
The gdb.btrace/multi-inferior.exp test creates multiple inferiors to check that recording is per-inferior. When run with the native-gdbserver board, this test hangs when trying to add the second inferior over the remote connection. Skip the test. Note that the test runs fine with the native-extended-gdbserver board file and we want to keep testing that configuration. gdb/testsuite/ChangeLog: 2020-12-11 Markus Metzger <markus.t.metzger@intel.com> * gdb.btrace/multi-inferior.exp: Skip if use_gdb_stub.
-
Markus Metzger authored
gdb/testsuite/ChangeLog: 2020-12-14 Markus Metzger <markus.t.metzger@intel.com> * gdb.python/py-record-btrace.exp: Make test names unique. * gdb.python/py-record-full.exp: Likewise.
-
Markus Metzger authored
gdb/testsuite/ChangeLog: 2020-12-04 Markus Metzger <markus.t.metzger@intel.com> * gdb.btrace/data.exp: Make test names unique. * gdb.btrace/delta.exp: Likewise. * gdb.btrace/enable.exp: Likewise. * gdb.btrace/function_call_history.exp: Likewise. * gdb.btrace/nohist.exp: Likewise. * gdb.btrace/non-stop.exp: Likewise. * gdb.btrace/rn-dl-bind.exp: Likewise. * gdb.btrace/step.exp: Likewise. * gdb.btrace/stepi.exp: Likewise. * gdb.btrace/tailcall.exp: Likewise.
-
Markus Metzger authored
When trying to use one of the record commands without having enabled recording first, GDB gives the error message: (gdb) record function-call-history No record target is currently active. Use one of the "target record-<TAB><TAB>" commands first. In the record help, however, we say: (gdb) help record record, rec Start recording. List of record subcommands: record btrace, record b -- Start branch trace recording. record delete, record del, record d -- Delete the rest of execution log and start recording it anew. record full -- Start full execution recording. record function-call-history -- Prints the execution history at function granularity. record goto -- Restore the program to its state at instruction number N. record instruction-history -- Print disassembled instructions stored in the execution log. record save -- Save the execution log to a file. record stop, record s -- Stop the record/replay target. Change the above error message to (gdb) record function-call-history No recording is currently active. Use the "record full" or "record btrace" command first. to align with the help text. gdb/ChangeLog: 2020-12-03 Markus Metzger <markus.t.metzger@intel.com> * record.c (require_record_target): Rephrase error message. (info_record_command): Likewise. gdb/testsuite/ChangeLog: 2020-12-03 Markus Metzger <markus.t.metzger@intel.com> * gdb.btrace/enable.exp: Update error message. * gdb.btrace/multi-inferior.exp: Likewise. * gdb.btrace/reconnect.exp: Likewise. * gdb.python/py-record-btrace.exp: Likewise. * gdb.python/py-record-full.exp: Likewise. -
Joel Brobecker authored
gdb/doc/ChangeLog * gdb.texinfo (Requirements): Add GMP to list of requirements. -
GDB Administrator authored
-
- Dec 20, 2020
-
-
Tom de Vries authored
Add a proc save_target_board_info, similar to save_vars, such that we can do: ... save_target_board_info { multilib_flags } { global board set board [target_info name] unset_board_info multilib_flags set_board_info multilib_flags "$override_multilib_flags" ... } ... and use it in gdb_compile_shlib. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2020-12-20 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (save_target_board_info): New proc. (gdb_compile_shlib): Use save_target_board_info. -
GDB Administrator authored
-
H.J. Lu authored
Move sym declaration just before use to avoid -Wmaybe-uninitialized warning from GCC 11. PR gold/27097 * incremental.cc (Sized_relobj_incr::do_add_symbols): Move sym declaration just before use. (Sized_incr_dynobj::do_add_symbols): Likewise. * plugin.cc (Sized_pluginobj::do_add_symbols): Likewise.
-
- Dec 19, 2020
-
-
Tom de Vries authored
Introduce support test procs: - supports_scalar_storage_order_attribute, and - supports_gnuc and use them in test-case gdb.base/endianity.exp. Tested on x86_64-linux with gcc-7.5.0, gcc-4.8.5, and clang 10.0.1. gdb/testsuite/ChangeLog: 2020-12-19 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (supports_scalar_storage_order_attribute) (supports_gnuc): New proc. * gdb.base/endianity.exp: Define TEST_SSO. Eliminate test_compiler_info calls. Add unsupported message. * gdb.base/endianity.c: Use TEST_SSO.
-
Hannes Domani authored
Comparing types of enum fields results in a crash, because they don't have a type. It can be reproduced by comparing the types of 2 instances of the same enum type in different objects: enum.h: enum e { zero, one, }; enum-1.c: #include <enum.h> int func(); enum e e1; int main() { return e1 + func(); } enum-2.c: #include <enum.h> enum e e2; int func() { return e2; } $ gcc -g -oenum enum-1.c enum-2.c $ gdb -q enum.exe Reading symbols from enum.exe... (gdb) py print(gdb.parse_and_eval("e1").type==gdb.parse_and_eval("e2").type) Thread 1 received signal SIGSEGV, Segmentation fault. [Switching to Thread 6184.0x1cc4] check_typedef (type=0x0) at C:/src/repos/binutils-gdb.git/gdb/gdbtypes.c:2745 2745 while (type->code () == TYPE_CODE_TYPEDEF) gdb/ChangeLog: 2020-12-19 Hannes Domani <ssbssa@yahoo.de> PR exp/27070 * gdbtypes.c (check_types_equal): Don't compare types of enum fields. gdb/testsuite/ChangeLog: 2020-12-19 Hannes Domani <ssbssa@yahoo.de> PR exp/27070 * gdb.python/compare-enum-type-a.c: New test. * gdb.python/compare-enum-type-b.c: New test. * gdb.python/compare-enum-type.exp: New file. * gdb.python/compare-enum-type.h: New test. -
Bernd Edlinger authored
Avoid the error message when source-highlight is actually available. 2020-12-19 Bernd Edlinger <bernd.edlinger@hotmail.de> * configure.ac: Move the static libs vs. source-highlight error message to a better place. * configure: Regenerate.
-
GDB Administrator authored
-
Hannes Domani authored
It was renamed from type to m_type. gdb/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * gdb-gdb.py.in: Fix main_type field name.
-
Hannes Domani authored
gdb/doc/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * python.texi (TUI Windows In Python): Remove erroneous 'a'.
-
Hannes Domani authored
This makes it possible to disable the address in the result string: const char *str = "alpha"; (gdb) py print(gdb.parse_and_eval("str").format_string()) 0x404000 "alpha" (gdb) py print(gdb.parse_and_eval("str").format_string(address=False)) "alpha" gdb/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * python/py-value.c (valpy_format_string): Implement address keyword. gdb/doc/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * python.texi (Values From Inferior): Document the address keyword. gdb/testsuite/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * gdb.python/py-format-string.exp: Add tests for address keyword. -
Hannes Domani authored
Considering this example: struct C { int func() { return 1; } } c; int main() { return c.func(); } Accessing the fields of C::func, when requesting the function by its type, works: (gdb) py print(gdb.parse_and_eval('C::func').type.fields()[0].type) C * const But when trying to do the same via a class instance, it fails: (gdb) py print(gdb.parse_and_eval('c')['func'].type.fields()[0].type) Traceback (most recent call last): File "<string>", line 1, in <module> TypeError: Type is not a structure, union, enum, or function type. Error while executing Python code. The difference is that in the former the function type is TYPE_CODE_FUNC: (gdb) py print(gdb.parse_and_eval('C::func').type.code == gdb.TYPE_CODE_FUNC) True And in the latter the function type is TYPE_CODE_METHOD: (gdb) py print(gdb.parse_and_eval('c')['func'].type.code == gdb.TYPE_CODE_METHOD) True So this adds the functionality for TYPE_CODE_METHOD as well. gdb/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * python/py-type.c (typy_get_composite): Add TYPE_CODE_METHOD. gdb/testsuite/ChangeLog: 2020-12-18 Hannes Domani <ssbssa@yahoo.de> * gdb.python/py-type.exp: Add tests for TYPE_CODE_METHOD. -
Jameson Nash authored
The arguments to these functions are file_ptr, so these declarations were accidentally implicitly down-casting them to signed int. This allows for reading files between 2 and 4 GB in size in my testing (I don't have a larger dll currently to test). These may not be natively supported by Windows, but can appear when using split-dwarf information. This solves a "can't get string table" error resulting from attempting to pass a negative offset to bfd_seek. I encountered this occuring while trying to use a debug file for libLLVM.dll, but searching online reveals at least one other person may have run into a similar problem with Firefox? https://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/CA+cU71k2bU0azQxjy4-77ynQj1O+TKmgtaTKe59n7Bjub1y7Tg@mail.gmail.com/ With this patch, the debug file appears to load successfully and I can see debug information in gdb for the library. gdb/ChangeLog: * coffread.c (linetab_offset): Change type to file_ptr. (linetab_size): Likewise. (enter_linenos): Change parameter type to file_ptr. (init_lineno): Likewise. (init_stringtab): Likewise. (coff_symtab_read): Likewise. (coff_symfile_read): Change variable types to file_ptr. Change-Id: I6ae3bf31efc51c826734ade6731ea6b1c32129f3 -
Tom Tromey authored
This changes the test case gdb.ada/fixed_points.exp to also be run with -fgnat-encodings=minimal. This change pointed out that the test case had a few incorrect expected outputs; these are fixed as well. Note that the Overprecise_Object test only uses the non-legacy output with GCC trunk. gdb/testsuite/ChangeLog 2020-12-18 Tom Tromey <tromey@adacore.com> * gdb.ada/fixed_points.exp: Also run with -fgnat-encodings=minimal. Update expected output.
-
- Dec 18, 2020
-
-
H.J. Lu authored
Build only unversioned libdep and remove the installed libdep.la since only a single libdep.so is needed. PR ld/27082 * Makefile.am (libdep_la_LDFLAGS): Add -module -avoid-version. (libdep_la_LINK): New. (install-data-local): Depend on $(install-bfdpluginLTLIBRARIES) and remove libdep.la.
-
H.J. Lu authored
Copy elf_gnu_osabi_retain from input only for relocatable link since SHF_GNU_RETAIN has no impact on non-relocatable outputs. bfd/ PR ld/27091 * elflink.c (elf_link_input_bfd): Copy elf_gnu_osabi_retain from input only for relocatable link. ld/ PR ld/27091 * testsuite/ld-elf/retain7.s: New file. * testsuite/ld-elf/retain7a.d: Likewise. * testsuite/ld-elf/retain7b.d: Likewise.
-
Alan Modra authored
bfd/ * elf32-microblaze.c (dbg): Delete unused variable. * elf32-nds32.c (relax_group_section_id_list): Make static. * som.c (reloc_queue): Make static. * xtensa-isa.c (xtisa_errno, xtisa_error_msg): Make static. include/ * xtensa-isa-internal.h (xtisa_errno, xtisa_error_msg): Delete.
-
Alan Modra authored
Fixes possible overflow of a static buffer for powerpc with translated messages, and on v850 when symbol names are large. * archive.c (_bfd_ar_spacepad, _bfd_ar_sizepad): Use auto buf. * coff-mcore.c (coff_mcore_relocate_section): Likewise. * elf32-ppc.c (ppc_elf_unhandled_reloc): Use asprintf in place of fixed size and possibly too small buf for translated message. * elf64-ppc.c (ppc64_elf_unhandled_reloc): Likewise. * elf32-v850.c (v850_elf_check_relocs): Likewise. * ecoff.c (ecoff_type_to_string): Pass in return string buff rather than using static buffer2. Delete dead code. Remove unnecessary parentheses. (_bfd_ecoff_print_symbol): Pass auto buff to ecoff_type_to_string. * elf32-rx.c (describe_flags): Pass in return string buf rather than using static buf. (rx_elf_merge_private_bfd_data): Pass buf to describe_flags. (rx_elf_print_private_bfd_data): Likewise. * mach-o.c (cpusubtype): Pass in return string buffer rather than using static buffer. (bfd_mach_o_bfd_print_private_bfd_data): Pass buff to cpusubtype. * opncls.c (separate_debug_file_exists): Make buffer an auto var. (bfd_fill_in_gnu_debuglink_section): Likewise. * peXXigen.c (rsrc_resource_name): Pass in return string buffer rather than using static buffer. (rsrc_sort_entries): Pass buff to rsrc_resource_name. * vms-alpha.c (_bfd_vms_write_emh): Pass tbuf to get_vms_time_string. * vms-misc.c (get_vms_time_string): Pass in return string tbuf rather than using static tbuf. * vms.h (get_vms_time_string): Update prototype.
-
Alan Modra authored
bfd/ * coff-z80.c (bfd_howto_type): Make typedef const. * elf32-z80.c (bfd_howto_type): Likewise. * elf32-m32c.c (EncodingTable): Likewise. * elf32-csky.c (csky_arch_for_merge): Likewise. (csky_archs): Use typedef. * elf32-m68hc11.c (m68hc11_direct_relax_table): Make const. (find_relaxable_insn, m68hc11_elf_relax_section): Adjust to suit. * elf32-ppc.c (ppc_alt_plt): Make const. * elf32-rl78.c (relax_addr16): Likewise. * targets.c (_bfd_associated_vector): Likewise. (bfd_target_vector, bfd_associated_vector): Likewise. * libbfd-in.h (bfd_target_vector, bfd_associated_vector): Likewise. * libbfd.h: Regenerate. include/ * opcode/arc-attrs.h (CONFLICT_LIST): Make const.
-
Alan Modra authored
This tidies initialisation of target common sections, doing so using a static initialiser rather than via code and deleting unnecessary symbol_ptr_ptr variables (the one in asection is used instead). The patch also initialises ecoff.c:bfd_debug_section using BFD_FAKE_SECTION. That does change bfd_debug_section slightly, output_section was NULL now bfd_debug_section, and symbol_ptr_ptr was NULL now &bfd_debug_section.symbol, but I believe those changes are safe. bfd/ * ecoff.c (bfd_debug_section): Init using BFD_FAKE_SECTION. (ecoff_scom_section, ecoff_scom_symbol): Statically init using BFD_FAKE_SECTION and GLOBAL_SYM_INIT. Delete initialisation code. (ecoff_scom_symbol_ptr): Delete. * elf32-m32r.c (m32r_elf_scom_section, m32r_elf_scom_symbol), (m32r_elf_scom_symbol_ptr), * elf32-score.c (score_elf_scom_section, score_elf_scom_symbol), (score_elf_scom_symbol_ptr), * elf32-score7.c (score_elf_scom_section, score_elf_scom_symbol), (score_elf_scom_symbol_ptr), * elf32-tic6x.c (tic6x_elf_scom_section, tic6x_elf_scom_symbol), (tic6x_elf_scom_symbol_ptr), * elf32-v850.c (v850_elf_scom_section, v850_elf_scom_symbol), (v850_elf_scom_symbol_ptr), (v850_elf_tcom_section, v850_elf_tcom_symbol), (v850_elf_tcom_symbol_ptr), (v850_elf_zcom_section, v850_elf_zcom_symbol), (v850_elf_zcom_symbol_ptr), * elf64-mmix.c (mmix_elf_reg_section, mmix_elf_reg_section_symbol), (mmix_elf_reg_section_symbol_ptr), * elfxx-mips.c (mips_elf_scom_section, mips_elf_scom_symbol), (mips_elf_scom_symbol_ptr): Likewise. gas/ * ecoff.c (ecoff_frob_symbol): Rename scom_section to ecoff_scom_section and statically initialise.
-
GDB Administrator authored
-
Tom Tromey authored
While removing printfi_filtered, I found a spot that used n_spaces where the now-ordinary "%*s" approach would do. This patch makes this change. Tested on x86-64 Fedora 32. gdb/ChangeLog 2020-12-17 Tom Tromey <tromey@adacore.com> * printcmd.c (print_variable_and_value): Don't use n_spaces.
-
Tom Tromey authored
After seeing Simon's patch, I thought maybe it was finally time to remove printfi_filtered and fprintfi_filtered, in favor of using the "%*s" approach to indenting. In this patch I took the straightforward approach of always adding a leading "%*s", even when the format already started with "%s", to avoid the trickier form of: printf ("%*s", -indent, string) Regression tested on x86-64 Fedora 32. Let me know what you think. gdb/ChangeLog 2020-12-17 Tom Tromey <tromey@adacore.com> * gdbtypes.c (print_args, dump_fn_fieldlists, print_cplus_stuff) (print_gnat_stuff, print_fixed_point_type_info) (recursive_dump_type): Update. * go32-nat.c (go32_sysinfo, display_descriptor): Update. * c-typeprint.c (c_type_print_base_struct_union) (c_type_print_base_1): Update. * rust-lang.c (rust_internal_print_type): Update. * f-typeprint.c (f_language::f_type_print_base): Update. * utils.h (fprintfi_filtered, printfi_filtered): Remove. * m2-typeprint.c (m2_record_fields): Update. * p-typeprint.c (pascal_type_print_base): Update. * compile/compile-loc2c.c (push, pushf, unary, binary) (do_compile_dwarf_expr_to_c): Update. * utils.c (fprintfi_filtered, printfi_filtered): Remove.
-
- Dec 17, 2020
-
-
Simon Marchi authored
gdb/doc/ChangeLog: PR gdb/27088 * gdb.texinfo (Range Checking): Fix "show check range" command name. Change-Id: I0248ef76d205ac49ed71b813aafe3e630c2ffc2e
-
Tom Tromey authored
In the expression rewrite, Ada type resolution will be done at parse time rather than in a post-parse pass. At this point, language_defn::post_parser will be removed. However, for this to work, the information available to post_parser must be made available during the actual parse. This patch refactors this code slightly to make this possible. In particular, "void_context_p" is passed to the parser_state constructor, and the parser state is then passed to the post_parser method. gdb/ChangeLog 2020-12-16 Tom Tromey <tom@tromey.com> * rust-exp.y (rust_lex_tests): Update. * parser-defs.h (parser_state): Add void_p parameter. <void_context_p>: New member. * parse.c (parse_exp_in_context): Update. * language.h (language_defn::post_parser): Remove void_context_p, completing, tracker parameters. Add parser state. * ada-lang.c (ada_language::post_parser): Update.
-
GDB Administrator authored
-
Tom Tromey authored
This patch changes void_context_p to bool, as a prerequisite to the change to post_parser that I submitted here: https://sourceware.org/pipermail/gdb-patches/2020-December/174080.html Tested by rebuilding. Note that nothing in-tree passes true here. I don't know why this is, but there is a use of this internally in AdaCore's tree. I will try to submit that patch, if it is needed. (And if not, I will come back around and remove this.) gdb/ChangeLog 2020-12-16 Tom Tromey <tom@tromey.com> * parse.c (parse_exp_1, parse_expression_for_completion): Update. (parse_exp_in_context): Change void_context_p to bool. * language.h (struct language_defn) <post_parser>: Change void_context_p to bool. * ada-lang.c (class ada_language) <post_parser>: Update.
-
Simon Marchi authored
For the same reason as explained in commit 7cb2893d ("gdb/testsuite: gdb.mi/mi-nonstop-exit.exp: enable non-stop using GDBFLAGS"). Note that the use of set GDBFLAGS "$GDBFLAGS ..." instead of append GDBFLAGS "..." is intentional. "append" is silent when appending to a non-existent variable. So if this code if moved to a proc (as is the case already for step-sw-breakpoint-adjust-pc.exp) and we forget to add "global GDBFLAGS", the flag won't be added to the global GDBFLAGS, and we won't actually enable non-stop, and it might go unnoticed. Using the "set" version will turn into an error if we forget the "global". This makes these test work correctly with native-extended-gdbserver. Some of them were silently failing because we runto_main is silent when it fails. gdb/testsuite/ChangeLog: * gdb.base/async-shell.exp: Enable non-stop through GDBFLAGS. * gdb.base/continue-all-already-running.exp: Likewise. * gdb.base/moribund-step.exp: Likewise. * gdb.base/step-sw-breakpoint-adjust-pc.exp: Likewise. Change-Id: I19ef05d07a0ec4a9c9476af2ba6e1ea1159ee437
-
H.J. Lu authored
Skip plugin if not all required plugin hooks are available. 2020-12-16 Howard Chu <hyc@symas.com> H.J. Lu <hongjiu.lu@intel.com> PR ld/27081 * libdep_plugin.c (onload): Skip if not all required plugin hooks are available. * testsuite/config/default.exp (dep_plug_opt): New. * testsuite/ld-elf/elf.exp: Pass $dep_plug_opt to nm. * testsuite/ld-elf/pr26391.fd: New file.
-