aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
AgeCommit message (Collapse)AuthorFilesLines
2013-05-10PR remote/15455 - QTro remote packet brokenPedro Alves3-0/+213
In the function remote_trace_set_readonly_regions in gdb/remote.c, the local variable 'offset' does not account for "QTro" at the start of the packet with the result that if there are any read-only regions, the packet is sent -- but without the "QTro" -- causing the remote stub to report that the packet is unsupported: Sending packet: $:0000000000400200,(...),00000000004560a4#ab...Packet received: vs the expected: Sending packet: $QTro:0000000000400200,(...),00000000004560a4#31...Packet received: OK We don't see the problem when testing with GDBserver, as that supports qXfer:trace-frame-info:read, meaning GDBserver never needs to read from the read-only sections directly itself. This commit adds a test that explicitly disables qXfer:trace-frame-info:read. gdb/ 2013-05-10 David Taylor <dtaylor@emc.com> PR remote/15455 * remote.c (remote_trace_set_readonly_regions): Do not overwrite "QTro" at start of packet. gdb/testsuite/ 2013-05-10 Pedro Alves <palves@redhat.com> PR remote/15455 * gdb.trace/qtro.c: New file. * gdb.trace/qtro.exp: New file.
2013-05-102013-05-10 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon7-0/+885
* stack.c (backtrace_command_1): Add "no-filters", and Python frame filter logic. (backtrace_command): Add "no-filters" option parsing. (_initialize_stack): Alter help to reflect "no-filters" option. * Makefile.in (SUBDIR_PYTHON_OBS): Add py-framefilter.o (SUBDIR_PYTHON_SRCS): Add py-framefilter.c (py-frame.o): Add target * data-directory/Makefile.in (PYTHON_DIR): Add Python frame filter files. * python/python.h: Add new frame filter constants, and flag enum. (apply_frame_filter): Add definition. * python/python.c (apply_frame_filter): New non-Python enabled function. * python/py-utils.c (py_xdecref): New function. (make_cleanup_py_xdecref): Ditto. * python/py-objfile.c: Declare frame_filters dictionary. (objfpy_dealloc): Add frame_filters dealloc. (objfpy_new): Initialize frame_filters attribute. (objfile_to_objfile_object): Ditto. (objfpy_get_frame_filters): New function. (objfpy_set_frame_filters): New function. * python/py-progspace.c: Declare frame_filters dictionary. (pspy_dealloc): Add frame_filters dealloc. (pspy_new): Initialize frame_filters attribute. (pspacee_to_pspace_object): Ditto. (pspy_get_frame_filters): New function. (pspy_set_frame_filters): New function. * python/py-framefilter.c: New file. * python/lib/gdb/command/frame_filters.py: New file. * python/lib/gdb/frames.py: New file. * python/lib/gdb/__init__.py: Initialize global frame_filters dictionary * python/lib/gdb/FrameDecorator.py: New file. * python/lib/gdb/FrameIterator.py: New file. * mi/mi-cmds.c (mi_cmds): Add frame filters command. * mi/mi-cmds.h: Declare. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames): Add --no-frame-filter logic, and Python frame filter logic. (stack_enable_frame_filters): New function. (parse_no_frame_option): Ditto. (mi_cmd_stack_list_frames): Add --no-frame-filter and Python frame filter logic. (mi_cmd_stack_list_locals): Ditto. (mi_cmd_stack_list_args): Ditto. (mi_cmd_stack_list_variables): Ditto. * NEWS: Add frame filter note. 2013-05-10 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-framefilter.py: New File. * gdb.python/py-framefilter-mi.exp: Ditto. * gdb.python/py-framefilter.c: Ditto. * gdb.python/py-framefilter-mi.exp: Ditto. * gdb.python/py-framefilter-mi.c: Ditto, * gdb.python/py-framefilter-gdb.py.in: Ditto. 2013-05-10 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Backtrace): Add "no-filter" argument. (Python API): Add Frame Filters API, Frame Wrapper API, Writing a Frame Filter/Wrapper, Managing Management of Frame Filters chapter entries. (Frame Filters API): New Node. (Frame Wrapper API): New Node. (Writing a Frame Filter): New Node. (Managing Frame Filters): New Node. (Progspaces In Python): Add note about frame_filters attribute. (Objfiles in Python): Ditto. (GDB/MI Stack Manipulation): Add -enable-frame-filters command, @anchors and --no-frame-filters option to -stack-list-variables, -stack-list-frames, -stack-list-locals and -stack-list-arguments commands.
2013-05-08 * gdb.base/solib-search.exp: Set test name for "setTom Tromey2-1/+8
solib-search-path" test.
2013-05-082013-05-08 Hafiz Abid Qadeer <abidh@codesourcery.com>Hafiz Abid Qadeer2-146/+232
* gdb.trace/circ.exp: Remove unnecessary 'if then' checks. (set_a_tracepoint): Set tracepoint before prologue. (run_trace_experiment): Test setup_tracepoints and 'break end' in it. (trace_buffer_normal): Remove. (gdb_trace_circular_tests): Remove. Move tests to... (top level): ...here. Call 'runto_main' before checking for trace support. Use commands to check the support for circular trace buffer and changing of trace buffer size. Add test to calculate size of single frame. Use this size to calculate the size of trace buffer. Use 'tfind pc func9' instead of 'tfind 9'. Use 'with_test_prefix'.
2013-05-07 * lib/selftest-support.exp: New file.Tom Tromey6-387/+174
* gdb.gdb/complaints.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. * gdb.gdb/observer.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. (test_observer): Don't call setup_test. Remove argument. * gdb.gdb/selftest.exp: Load selftest-support.exp. (find_gdb): Remove. * gdb.gdb/complaints.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. (test_with_self): Don't call setup_test. Remove argument.
2013-05-07Merge gdb.arch/system-gcore.exp into gdb.base/gcore.expPedro Alves4-265/+14
The test case gdb.arch/system-gcore.exp is almost an identical copy of gdb.base/gcore.exp. The only functional change is the additional comparison of the "info reg system" command output. It should be safe to perform this comparison on all architectures. Thus the patch removes the arch-specific version and adds "info reg system" to the common gcore test case instead. Tested on i686-linux and s390x-linux. gdb/testsuite/Changelog: 2013-05-07 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.arch/system-gcore.exp: Remove. * gdb.arch/gcore.c: Remove. * gdb.base/gcore.exp: Add "info reg system".
2013-05-07gdb/Sergio Durigan Junior3-0/+15
2013-05-07 Sergio Durigan Junior <sergiodj@redhat.com> PR breakpoints/15413: * breakpoint.c (condition_completer): Simplify the code to disconsider multiple locations of breakpoints when completing the "condition" command. gdb/testsuite/ 2013-05-07 Sergio Durigan Junior <sergiodj@redhat.com> PR breakpoints/15413: * gdb.base/pending.exp: Add test for completion of the "condition" command for pending breakpoints. * gdb.linespec/linespec.ex: Add test for completion of the "condition" command when dealing with multiple locations.
2013-05-07 gdb/Luis Machado3-0/+319
* ppc-linux-nat.c (ppc_linux_new_thread): Clear the new thread's debug state prior to replicating existing hardware watchpoints or breakpoints. gdb/testsuite/ * gdb.threads/wp-replication.c: New file. * gdb.threads/wp-replication.exp: New file.
2013-05-072013-05-06 Sandra Loosemore <sandra@codesourcery.com>Sandra Loosemore2-0/+7
gdb/testsuite/ * gdb.xml/tdesc-regs.exp: Add case for nios2.
2013-05-06 * gdb.base/solib-search-lib1.c: New file.Doug Evans6-0/+355
* gdb.base/solib-search-lib2.c: New file. * gdb.base/solib-search.c: New file. * gdb.base/solib-search.h: New file. * gdb.base/solib-search.exp: New file.
2013-05-06 * lib/gdb.exp (gdb_core_cmd): New function.Doug Evans6-103/+70
* gdb.arch/system-gcore.exp: Use it. * gdb.arch/vsx-regs.exp: Ditto. * gdb.base/gcore.exp: Ditto. * gdb.threads/gcore-thread.exp: Ditto.
2013-05-06 * gdb.reverse/shr.h: New file.Doug Evans7-64/+140
* gdb.reverse/shr1.c: New file. * gdb.reverse/shr2.c: #include "shr.h". * gdb.reverse/solib-reverse.c: Remove #include <stdio.h>. #include "shr.h". Replace calls to printf,sleep to call shr1 instead. * gdb.reverse/solib-precsave.exp: Build shr2.sl. Update tests using sleep/printf to use shr2.sl instead. * gdb.reverse/solib-reverse.exp: Ditt.o
2013-05-06 * dwarf2loc.c (invalid_synthetic_pointer): Move earlier.Tom Tromey4-3/+160
(indirect_pieced_value): Call dwarf2_fetch_constant_bytes if needed. * dwarf2loc.h (dwarf2_fetch_constant_bytes): Declare. * dwarf2read.c (write_constant_as_bytes) (dwarf2_fetch_constant_bytes): New functions. gdb/testsuite * gdb.dwarf2/implptrconst.c: New file. * gdb.dwarf2/implptrconst.exp: New file. * lib/dwarf.exp (Dwarf::_nz_quote): New proc. (Dwarf::_handle_DW_FORM): Handle DW_FORM_block1. (Dwarf::_location): Handle DW_OP_GNU_implicit_pointer.
2013-05-03Fix to handle properly 'catch signal SIGINT' and SIGTRAPPhilippe Waroquiers3-0/+20
2013-05-032013-05-03 Hafiz Abid Qadeer <abidh@codesourcery.com>Hafiz Abid Qadeer2-3/+12
* tracepoint.c (cmd_qtinit): Call 'stop_tracing'. 2013-05-03 Hafiz Abid Qadeer <abidh@codesourcery.com> * status-stop.exp (test_tstart_tstart): Check for error returned by the second 'tstart' command.
2013-04-30Fix display of structures/bitfields in register description.Walfred Tedeschi3-0/+66
Add support for displaying structures and bitfields for registers when executing "maint print c-tdesc". This command is also used when converting the xml target description file into c file. Example of the behaviour is given below reporting a snipet of the xml file and a snippet of the c code generated. XML file contains: ... <union id="vecint"> <field name="v4" type="v4int8"/> <field name="v2" type="v2int16"/> </union> <struct id="struct1"> <field name="v4" type="v4int8"/> <field name="v2" type="v2int16"/> </struct> <struct id="struct2" size="8"> <field name="f1" start="0" end="34"/> <field name="f2" start="63" end="63"/> </struct> ... Setting this xml file as target description file and issuing the maintenance print c-tdesc the following output is obtained: feature = tdesc_create_feature (result, "extra"); field_type = tdesc_named_type (feature, "int8"); tdesc_create_vector (feature, "v4int8", field_type, 4); field_type = tdesc_named_type (feature, "int16"); tdesc_create_vector (feature, "v2int16", field_type, 2); type = tdesc_create_union (feature, "vecint"); field_type = tdesc_named_type (feature, "v4int8"); tdesc_add_field (type, "v4", field_type); field_type = tdesc_named_type (feature, "v2int16"); tdesc_add_field (type, "v2", field_type); C output is not supported type "struct1". This is finally the issue. 2013-03-27 Walfred Tedeschi <walfred.tedeschi@intel.com> * target-descriptions.c (maint_print_c_tdesc_cmd): Add case to parse structures as register types and bitfields. testsuite/ * gdb.xml/maint_print_struct.exp: New file. * gdb.xml/maint_print_struct.xml: New file. Change-Id: I2e20b095d508319c80275e724a9452c7e2834067 Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
2013-04-25 PR corefiles/14983:Tom Tromey2-0/+63
* dwarf2read.c (process_full_comp_unit): Always create a static block. gdb/testsuite * gdb.dwarf2/nostaticblock.exp: New file.
2013-04-25Fix format error of ChangeLog.Hui Zhu1-2/+0
2013-04-242013-04-24 Muhammad Bilal <mbilal@codesourcery.com>Muhammad Bilal2-0/+12
PR gdb/10462 * cli/cli-decode.c (lookup_command): Show an error if there is no space before argument. 2013-04-24 Muhammad Bilal <mbilal@codesourcery.com> PR gdb/10462 * gdb.base/setshow.exp: Add test case.
2013-04-232013-04-23 Hui Zhu <hui@codesourcery.com>Hui Zhu2-1/+9
PR gdb/15293 * breakpoint.c (bpstat_what): Add BPSTAT_WHAT_SINGLE to bp_dprintf. 2013-04-23 Hui Zhu <hui@codesourcery.com> PR gdb/15293 * gdb.base/dprintf.exp: Add ignore command.
2013-04-232013-04-23 Hui Zhu <hui@codesourcery.com>Hui Zhu2-1/+10
PR gdb/15165 * breakpoint.c (dprintf_print_recreate): New. (save_breakpoints): Let it not save dprintf commands. (initialize_breakpoint_ops): Set dprintf_print_recreate. 2013-04-23 Hui Zhu <hui@codesourcery.com> PR gdb/15165 * gdb.base/save-bp.exp: Add test for dprintf.
2013-04-22 * gdb.gdb/selftest.exp (do_steps_and_nexts): Check forTom Tromey2-0/+9
notice_open_fds.
2013-04-222013-04-22 Sergio Durigan Junior <sergiodj@redhat.com>Sergio Durigan Junior2-1/+6
* gdb.arch/arm-bl-branch-dest.exp: Replace additional_flags by ldflags.
2013-04-22Andrew Haley found a bug on GDB running on ARM when usingSergio Durigan Junior3-0/+71
--enable-64-bit-bfd. Basically the issue happens when dealing with "bl" instructions: GDB does branch destination calculation and (wrongly) sign-extends the PC. Here is a piece of his original message explaining the problem: > next_pc = arm_get_next_pc (frame, get_frame_pc (frame)); > > /* The Linux kernel offers some user-mode helpers in a high page. We can > not read this page (as of 2.6.23), and even if we could then we couldn't > set breakpoints in it, and even if we could then the atomic operations > would fail when interrupted. They are all called as functions and return > to the address in LR, so step to there instead. */ > if (next_pc > 0xffff0000) > next_pc = get_frame_register_unsigned (frame, ARM_LR_REGNUM); > > arm_insert_single_step_breakpoint (gdbarch, aspace, next_pc); > > Unfortunately, branch destination addresses are SIGN EXTENDED to 64 > bits. So, > > (top-gdb) p/x next_pc > $14 = 0xffffffffb6df2864 > > Which triggers the next_pc = get_frame_register_unsigned(), and we > cannot step into any branches because the destination PC is wrong. Anyway, the fix is simple and Andrew himself provided it for us. It took a while for me to figure out how to trigger the bug (in order to write a testcase for it), but I finally made it. The attached patch fixes the problem (by casting to `unsigned long' instead of just `long'), and also includes a testcase to reproduce the issue. gdb/ChangeLog: 2013-04-22 Andrew Haley <aph@redhat.com> * arm-tdep.c (BranchDest): Cast result as "unsigned long", instead of "long". gdb/testsuite/ChangeLog: 2013-04-22 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.arch/arm-bl-branch-dest.c: New file. * gdb.arch/arm-bl-branch-dest.exp: Likewise.
2013-04-19Fix the x87 FP register printout when issuing the “info float” command.Pedro Alves3-0/+83
Consider the following simple program: .globl _start .text _start: fldt val .data val: .byte 0x00,0x00,0x45,0x07,0x11,0x19,0x22,0xe9,0xfe,0xbf With current GDB on x86-64 GNU/Linux hosts, after the moment the fldt command has been executed the register st(0) looks like this, according to the “info regs” output (TOP=7): R7: Valid 0xffffffbffffffffeffffffe922191107450000 -0.910676542908976927 which is clearly wrong (just count its length). The problem is due to the printf statement (see patch) printing a promoted integer value of a char argument "raw[i]", and, since char is signed on x86-64 GNU/Linux, the erroneous “ffffff” are printed for the first three bytes which turn out to be "negative". The fix is to use gdb_byte instead which is unsigned (and is the type of value_contents(), the type to be used for raw target bytes anyway). After the fix the value will be printed correctly: R7: Valid 0xbffee922191107450000 -0.910676542908976927 gdb/ 2013-04-19 Vladimir Kargov <kargov@gmail.com> Pedro Alves <palves@redhat.com> * i387-tdep.c (i387_print_float_info): Use gdb_byte for pointer to value contents. gdb/testsuite/ 2013-04-19 Vladimir Kargov <kargov@gmail.com> Pedro Alves <palves@redhat.com> * gdb.arch/i386-float.S: New file. * gdb.arch/i386-float.exp: New file.
2013-04-18 * gdb.mi/mi-var-create-rtti.exp: Create a variable ofLuis Machado2-2/+9
type void *.
2013-04-17 * lib/dwarf.exp (Dwarf): New proc "tu".Doug Evans3-0/+146
* gdb.dwarf2/missing-sig-type.exp: New file.
2013-04-152013-04-15 Siva Chandra Reddy <sivachandra@google.com>Siva Chandra Reddy2-5/+24
Add option to link testcases with Pthreads library when using 'prepare_for_testing' in tests. testsuite/ * lib/gdb.exp (build_executable_from_specs): Use gdb_compile_pthreads to compile if option "pthreads" is specified.
2013-04-15 PR c++/13588:Tom Tromey2-0/+25
* NEWS: Update. * break-catch-throw.c (struct exception_catchpoint) <exception_rx, pattern>: New fields. (fetch_probe_arguments, dtor_exception_catchpoint) (check_status_exception_catchpoint) (print_one_detail_exception_catchpoint): New functions. (handle_gnu_v3_exceptions): Add "except_rx" argument. Compile regular expression if needed. (extract_exception_regexp): New function. (catch_exception_command_1): Use extract_exception_regexp. (compute_exception): Use fetch_probe_arguments. (initialize_throw_catchpoint_ops): Set dtor, print_one_detail, and check_status fields. * cp-abi.c (cplus_typename_from_type_info): New function. * cp-abi.h (cplus_typename_from_type_info): Declare. (struct cp_abi_ops) <get_typename_from_type_info>: New field. * gdb_regex.h (compile_rx_or_error): Declare. * gnu-v3-abi.c (gnuv3_get_typename_from_type_info): Update comment. (init_gnuv3_ops): Set get_type_from_type_info field. * probe.c (compile_rx_or_error): Move... * utils.c (compile_rx_or_error): ... here. gdb/doc * gdb.texinfo (Set Catchpoints): Document regexp syntax for exception catchpoints. gdb/testsuite * gdb.cp/exceptprint.exp: Add regexp catchpoint tests.
2013-04-15 PR c++/15176:Tom Tromey5-0/+164
* NEWS: Update. * break-catch-throw.c (compute_exception): New function. (exception_funcs): New global. (_initialize_break_catch_throw): Create $_exception. * cp-abi.c (cplus_type_from_type_info): New function. * cp-abi.h (cplus_type_from_type_info): Declare. (struct cp_abi_ops) <get_type_from_type_info>: New field. * gnu-v3-abi.c (gnuv3_get_typename_from_type_info) (gnuv3_get_type_from_type_info): New functions. (init_gnuv3_ops): Set get_type_from_type_info ABI field. gdb/doc * gdb.texinfo (Set Catchpoints): Document $_exception. (Convenience Vars): Mention $_exception. gdb/testsuite * gdb.base/default.exp: Update for $_exception. * gdb.cp/exceptprint.cc: New file. * gdb.cp/exceptprint.exp: New file. * lib/gdb.exp (skip_libstdcxx_probe_tests): New proc.
2013-04-15 PR c++/9065:Tom Tromey3-0/+132
* NEWS: Update. * breakpoint.c (watchpoint_exp_is_const): Add OP_TYPEID. * c-exp.y (TYPEID): New token. (exp): Add new TYPEID productions. (ident_tokens): Add "typeid". * cp-abi.c (cplus_typeid, cplus_typeid_type): New functions. * cp-abi.h (cplus_typeid, cplus_typeid_type): Declare. (struct cp_abi_ops) <get_typeid, get_typeid_type>: New fields. * eval.c (evaluate_subexp_standard) <OP_TYPEID>: New case. * expprint.c (dump_subexp_body_standard) <OP_TYPEID>: New case. * gnu-v3-abi.c (std_type_info_gdbarch_data): New global. (build_std_type_info_type, gnuv3_get_typeid_type) (gnuv3_get_typeid): New functions. (init_gnuv3_ops): Initialize std_type_info_gdbarch_data. Set new fields on ABI object. * parse.c (operator_length_standard) <OP_TYPEID>: New case. * std-operator.def (OP_TYPEID): New. gdb/testsuite * gdb.cp/typeid.cc: New file. * gdb.cp/typeid.exp: New file.
2013-04-15 PR c++/12824:Tom Tromey2-17/+20
* NEWS: Update. * breakpoint.c (enum exception_event_kind) <EX_EVENT_RETHROW>: New constant. (classify_exception_breakpoint): New function. (print_it_exception_catchpoint, print_one_exception_catchpoint) (print_mention_exception_catchpoint) (print_recreate_exception_catchpoint, handle_gnu_v3_exceptions) (catch_exception_command_1): Handle "rethrow" catchpoint. (catch_rethrow_command): New function. (_initialize_breakpoint): Add "catch rethrow" command. gdb/doc * gdb.texinfo (Set Catchpoints): Reorganize exception catchpoints. Document "catch rethrow". (Debugging C Plus Plus): Mention "catch rethrow". gdb/testsuite * gdb.cp/exception.exp: Add "catch rethrow" tests.
2013-04-13gdb/Yao Qi2-1/+17
* ctf.c (_initialize_ctf): Include "completer.h". Call add_target_with_completer instead of add_target. gdb/testsuite/ * gdb.base/completion.exp: Test completion of command 'target ctf' if target ctf is supported.
2013-04-10Accept "set foo unlimited" in integer/uinteger/zuinteger_unlimited commands.Pedro Alves4-2/+31
Currently, several commands take "0" or "-1" to mean "unlimited". "show" knows when to print "unlimited": (gdb) show height Number of lines gdb thinks are in a page is 45. (gdb) set height 0 (gdb) show height Number of lines gdb thinks are in a page is unlimited. However, the user can't herself specify "unlimited" directly: (gdb) set height unlimited No symbol table is loaded. Use the "file" command. (gdb) This patch addresses that, by adjusting the set handler for all integer/uinteger/zuinteger_unlimited commands to accept literal "unlimited". It also installs a completer. Presently, we complete on symbols by default, and at <http://sourceware.org/ml/gdb-patches/2013-03/msg00864.html> I've shown a WIP prototype that tried to keep that half working in these commands. In the end, it turned out to be more complicated than justifiable, IMO. It's super rare to want to pass the value of a variable/symbol in the program to a GDB set/show knob. That'll still work, it's just that we won't assist with completion anymore. This patch just sticks with the simple, and completes on "unlimited", and nothing else. This simplification means that "set he<tab><tab>" is all it takes to get to: "set height unlimited" The patch then goes through all integer/uinteger/zuinteger_unlimited commands in the tree, and updates both the online help and the manual to mention that "unlimited" is accepted in addition to 0/-1. In the cases where the command had no online help text at all, this adds it. I've tried to make the texts read in a way that "unlimited" is suggested before "0" or "-1" is. Tested on x86_64 Fedora 17. gdb/ 2013-04-10 Pedro Alves <palves@redhat.com> * cli/cli-decode.c (integer_unlimited_completer): New function. (add_setshow_integer_cmd, add_setshow_uinteger_cmd) (add_setshow_zuinteger_unlimited_cmd): Install the "unlimited" completer. * cli/cli-setshow.c: Include "cli/cli-utils.h". (is_unlimited_literal): New function. (do_set_command): Handle literal "unlimited" arguments. * frame.c (_initialize_frame) <set backtrace limit>: Document "unlimited". * printcmd.c (_initialize_printcmd) <set print max-symbolic-offset>: Add help text. * record-full.c (_initialize_record_full) <set record full insn-number-max>: Likewise. * record.c (_initialize_record) <set record instruction-history-size, set record function-call-history-size>: Add help text. * ser-tcp.c (_initialize_ser_tcp) <set tcp connect-timeout>: Add help text. * tracepoint.c (_initialize_tracepoint) <set trace-buffer-size>: Likewise. * source.c (_initialize_source) <set listsize>: Add help text. * utils.c (initialize_utils) <set height, set width>: Likewise. <set pagination>: Mention "set height unlimited". * valprint.c (_initialize_valprint) <set print elements, set print repeats>: Document "unlimited". gdb/doc/ 2013-04-10 Pedro Alves <palves@redhat.com> * gdb.texinfo (Process Record and Replay): Document that "set record full insn-number-max", "set record instruction-history-size" and "set record function-call-history-size" accept "unlimited". (Backtrace): Document that "set backtrace limit" accepts "unlimited". (List): Document that "set listsize" accepts "unlimited". (Print Settings)" Document that "set print max-symbolic-offset", "set print elements" and "set print repeats" accept "unlimited". (Starting and Stopping Trace Experiments): Document that "set trace-buffer-size" accepts "unlimited". (Remote Configuration): Document that "set tcp connect-timeout" accepts "unlimited". (Command History): Document that "set history size" accepts "unlimited". (Screen Size): Document that "set height" and "set width" accepts "unlimited". Adjust "set pagination"'s description to suggest "set height unlimited" instead of "set height 0". gdb/testsuite/ 2013-04-10 Pedro Alves <palves@redhat.com> * gdb.base/completion.exp: Test "set height", "set listsize" and "set trace-buffer-size" completion. * gdb.base/setshow.exp: Test "set height unlimited". * gdb.trace/trace-buffer-size.exp: Test "set trace-buffer-size unlimited".
2013-04-10gdb/Yao Qi6-0/+103
2013-04-10 Hui Zhu <hui@codesourcery.com> Yao Qi <yao@codesourcery.com> * configure.ac: Check libbabeltrace is installed. * config.in: Regenerate. * configure: Regenerate. * Makefile.in (LIBBABELTRACE): New. (CLIBS): Add LIBBABELTRACE. * ctf.c: Include "exec.h". (CTF_EVENT_ID_STATUS, CTF_EVENT_ID_TSV_DEF): New macros. (CTF_EVENT_ID_TP_DEF, ctf_save_write_int32): New macros. (ctf_save_metadata_header): Define new type aliases in metadata. (ctf_write_header): Define event type "tsv_def" and "tp_def" in metadata. Start a new faked packet for trace status. (ctf_write_status): Write trace status to CTF. (ctf_write_uploaded_tsv): Write TSV to CTF. (ctf_write_uploaded_tp): Write tracepoint definition to CTF. (ctf_write_definition_end): End the faked packet. (ctx, ctf_iter, trace_dirname): New. (start_pos): New variable. (ctf_destroy, ctf_open_dir, ctf_open): New. (SET_INT32_FIELD, SET_ARRAY_FIELD, SET_STRING_FIELD): New macros. (ctf_read_tsv, ctf_read_tp, ctf_close, ctf_files_info): New. (ctf_fetch_registers, ctf_xfer_partial): New. (ctf_get_trace_state_variable_value): New. (ctf_get_tpnum_from_frame_event): New. (ctf_get_traceframe_address): New. (ctf_trace_find, ctf_has_stack): New. (ctf_has_registers, ctf_traceframe_info, init_ctf_ops): New. (ctf_get_trace_status, ctf_read_status): New. (_initialize_ctf): New. * tracepoint.c (get_tracepoint_number): New (get_uploaded_tsv): Remove 'static'. (struct traceframe_info, trace_regblock_size): Move it to ... * tracepoint.h: ... here. (get_tracepoint_number): Declare it. (get_uploaded_tsv): Declare it. * NEWS: Mention new configure option. gdb/doc/ 2013-04-10 Yao Qi <yao@codesourcery.com> * gdb.texinfo (Trace Files): Add "target ctf". gdb/testsuite/ 2013-04-10 Yao Qi <yao@codesourcery.com> * gdb.trace/actions.exp: Save trace data to CTF. Change to ctf target if GDB supports, read CTF data in ctf target, and check the actions of tracepoints. * gdb.trace/while-stepping.exp: Likewise. * gdb.trace/report.exp: Test GDB saves trace data to CTF format and read CTF trace file if GDB supports. * gdb.trace/tstatus.exp: Save trace data to CTF. If ctf target is supported, change to ctf target, read trace data and check output of command "tstatus". * gdb.trace/tsv.exp: Save trace frame to CTF. If GDB supports, read CTF data by target ctf and call check_tsv.
2013-04-10gdb/testsuite/Yao Qi3-0/+139
* gdb.trace/actions.exp (check_tracepoint): New. (top level): Start the tracing and check the actions of tracepoints. Save trace data to tfile format. Restart GDB and read trace file in tfile target. Check the actions of tracepoints again. * gdb.trace/while-stepping.exp: Likewise.
2013-04-10gdb/testsuite/Yao Qi2-2/+10
* gdb.trace/report.exp: Use standard_output_file for saved trace file.
2013-04-102013-04-10 Pedro Alves <palves@redhat.com>Hui Zhu5-2/+164
Hui Zhu <hui@codesourcery.com> * breakpoint.c (dprintf_re_set): New. (initialize_breakpoint_ops): Set dprintf_breakpoint_ops re_set to dprintf_re_set. 2013-04-10 Hui Zhu <hui@codesourcery.com> * gdb.base/Makefile.in (EXECUTABLES): Add dprintf-pending. (MISCELLANEOUS): Add dprintf-pendshr.sl. * gdb.base/dprintf-pending.c, gdb.base/dprintf-pending.exp: New.
2013-04-09gdb/testsuite/Jan Kratochvil2-1/+6
* gdb.server/server-kill.exp (tstatus): Permit also ECONNRESET response.
2013-04-08create_breapoint / explicit mode: Error out if there's garbage after the ↵Pedro Alves2-0/+17
breakpoint location. If !PARSE_CONDITION_AND_THREAD, then ARG is just the location, nothing else. The fact that the describing comment of create_breakpoint doesn't mention this just looks like an oversight of when extra_string was added. "parse_condition_and_thread" has been a misnomer ever since extra_string was added -- better rename it avoid more confusion. This makes it "parse_arg", as that'll remain stable even if/when more explicit parameters are added. gdb/ 2013-04-08 Pedro Alves <palves@redhat.com> Keith Seitz <keiths@redhat.com> * breakpoint.c (create_breakpoint): Rename "parse_condition_and_thread" parameter to "parse_arg". Update describing comment. If !PARSE_ARG, then error out if ARG is not the empty string after extracting the location. * breakpoint.h (create_breakpoint): Rename "parse_condition_and_thread" parameter to "parse_arg". gdb/testsuite/ 2013-04-08 Pedro Alves <palves@redhat.com> * gdb.mi/mi-break.exp (test_error): Add tests with garbage after the location.
2013-04-042013-04-04 Sandra Loosemore <sandra@codesourcery.com>Sandra Loosemore2-1/+6
gdb/testsuite/ * gdb.cp/cplabel.exp: Allow empty directory in file reported for breakpoint location.
2013-04-042013-04-04 Sandra Loosemore <sandra@codesourcery.com>Sandra Loosemore2-7/+18
gdb/testsuite/ * gdb.linespec/linespec.exp: Make dir/file:line tests conditional for non-remote hosts only.
2013-04-04tracepoint->step_count fixesPedro Alves5-8/+273
If a tracepoint's actions list includes a while-stepping action, and then the actions are changed to a list without any while-stepping action, the tracepoint's step_count will be left with a stale value. For example: (gdb) trace subr Tracepoint 1 at 0x4004d9: file ../../../src/gdb/testsuite//actions-changed.c, line 31. (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $reg >end (gdb) set debug remote 1 (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:0:0-#a3...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF#2b...Packet received: OK (gdb) tstop Sending packet: $QTStop#4b...Packet received: OK Sending packet: $QTNotes:#e8...Packet received: OK (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $reg >while-stepping 1 >collect $reg >end >end (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:1:0-#a4...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF-#58...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:SR03FFFFFFFFFFFFFFFFFF#7e...Packet received: OK (gdb) tstop Sending packet: $QTStop#4b...Packet received: OK Sending packet: $QTNotes:#e8...Packet received: OK (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $regs >end (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:1:0-#a4...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF#2b...Packet received: OK The last "$QTDP:1:00000000004004d9:E:1:0-#a4" should be "$QTDP:1:00000000004004d9:E:0:0-#a3". In pseudo-diff: -$QTDP:1:00000000004004d9:E:1:0-#a4 +$QTDP:1:00000000004004d9:E:0:0-#a3 A related issue is that the "commands" command actually supports setting commands to a range of breakpoints/tracepoints at once. But, hacking "maint info breakpoints" to print t->step_count, reveals: (gdb) trace main Tracepoint 5 at 0x45a2ab: file ../../src/gdb/gdb.c, line 29. (gdb) trace main Note: breakpoint 5 also set at pc 0x45a2ab. Tracepoint 6 at 0x45a2ab: file ../../src/gdb/gdb.c, line 29. (gdb) commands 5-6 Type commands for breakpoint(s) 5-6, one per line. End with a line saying just "end". > while-stepping 5 >end > end (gdb) maint info breakpoints 5 Num Type Disp Enb Address What 5 tracepoint keep y 0x000000000045a2ab in main at ../../src/gdb/gdb.c:29 inf 1 step_count=5 ^^^^^^^^^^^^ while-stepping 5 end not installed on target (gdb) maint info breakpoints 6 Num Type Disp Enb Address What 6 tracepoint keep y 0x000000000045a2ab in main at ../../src/gdb/gdb.c:29 inf 1 step_count=0 ^^^^^^^^^^^^ while-stepping 5 end not installed on target (gdb) that tracepoint 6 doesn't end up with the correct step_count. The issue is that here: static void do_map_commands_command (struct breakpoint *b, void *data) { struct commands_info *info = data; if (info->cmd == NULL) { struct command_line *l; if (info->control != NULL) l = copy_command_lines (info->control->body_list[0]); else { struct cleanup *old_chain; char *str; str = xstrprintf (_("Type commands for breakpoint(s) " "%s, one per line."), info->arg); old_chain = make_cleanup (xfree, str); l = read_command_lines (str, info->from_tty, 1, (is_tracepoint (b) ? check_tracepoint_command : 0), b); do_cleanups (old_chain); } info->cmd = alloc_counted_command_line (l); } validate_actionline is never called for tracepoints other than the first (the copy_command_lines path). Right below, we have: /* If a breakpoint was on the list more than once, we don't need to do anything. */ if (b->commands != info->cmd) { validate_commands_for_breakpoint (b, info->cmd->commands); incref_counted_command_line (info->cmd); decref_counted_command_line (&b->commands); b->commands = info->cmd; observer_notify_breakpoint_modified (b); } And validate_commands_for_breakpoint looks like the right place to put a call; if we reset step_count there too, we have a nice central fix for the first issue as well, because trace_actions_command calls breakpoint_set_commands that also calls validate_commands_for_breakpoint. We end up calling validate_actionline twice for the first tracepoint, since read_command_lines calls it too, through check_tracepoint_command, but that should be harmless. 2013-04-04 Pedro Alves <palves@redhat.com> Hui Zhu <hui@codesourcery.com> * breakpoint.c (validate_commands_for_breakpoint): If validating a tracepoint, reset its STEP_COUNT and call validate_actionline. 2013-04-04 Stan Shebs <stan@codesourcery.com> Pedro Alves <palves@redhat.com> * gdb.trace/Makefile.in (PROGS): Add actions-changed. * gdb.trace/actions-changed.c: New file. * gdb.trace/actions-changed.exp: New file. * lib/trace-support.exp (gdb_trace_setactions): Rename to ... (gdb_trace_setactions_command): ... this. Add "actions_command" parameter, and handle it. (gdb_trace_setactions, gdb_trace_setcommands): New procedures.
2013-04-04gdb/testsuite/Yao Qi2-1/+8
* gdb.server/server-kill.exp: Use command 'tstatus' instead of 'step'.
2013-04-03gdb/testsuite/Yao Qi2-4/+11
* gdb.trace/mi-traceframe-changed.exp: Update tfile name to "tfile-basic.tf". (test_tfind_tfile): Likewise.
2013-04-03gdb/testsuite/Yao Qi3-13/+24
* gdb.trace/tfile.c (write_basic_trace_file): Pass argument "tfile-basic.tf" instead of "basic.tf". (write_error_trace_file): Pass argument "tfile-error.tf" instead of "error.tf". * gdb.trace/tfile.exp: Update tfile names to "tfile-basic.tf" and "tfile-error.tf".
2013-04-032013-04-02 Sandra Loosemore <sandra@codesourcery.com>Sandra Loosemore2-1/+6
gdb/testsuite/ * gdb.cp/ovsrch.exp (test_class): Correct regexp to allow empty directory in file for breakpoint hit.
2013-03-29gdb/Yao Qi3-0/+19
2013-03-29 Yao Qi <yao@codesourcery.com> * corelow.c: Include "completer.h". (_initialize_corelow): Call add_target_with_completer with argument 'filename_completer'. * tracepoint.c: Likewise. * exec.c (_initialize_exec): Likewise. * target.c (add_target): Rename to ... (add_target_with_completer): ... this. Call set_cmd_completer if parameter completer is not NULL. (add_target): New. * target.h: Include "command.h". (add_target_with_completer): Declare it. gdb/testsuite: 2013-03-29 Yao Qi <yao@codesourcery.com> * gdb.base/completion.exp: Test completion of commands "target core", "target tfile" and "target exec". * gdb.trace/tfile.exp: Test completion of command "target tfile".
2013-03-29Ignore __fu<digits>__ symbols from COFF symbol tablesJoel Brobecker5-0/+102
The debugger sometimes prints strange function names for given addresses. For instance, with the following source code... 4 procedure Foo is 5 A : Integer; 6 begin 7 Do_Nothing (A'Address); 8 end Foo; ... we can see... (gdb) info line 5 Line 5 of "foo.adb" starts at address 0x4017ca <_ada_foo+6> and ends at 0x4017d2 <_fu29__system__scalar_values__is_is4+7>. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _fu29__system__scalar_values__is_is4 is an artificial symbol generated by the linker, and interferes with the pc-to-symbol resolution. There isn't much in the general minimal_symbol data that could help us identify them, so this patch changes the COFF reader to simply ignore them. gdb/ChangeLog: * coffread.c (is_import_fixup_symbol): New function. (record_minimal_symbol): Use is_import_fixup_symbol to detect import fixup symbols, and discard them. gdb/testsuite/ChangeLog: * gdb.ada/win_fu_syms: New testcase.
2013-03-29 * dwarf2read.c (dw2_get_file_names): Delete arg "objfile".Doug Evans2-1/+5
All callers updated. (dw2_print_stats): Print #read CUs too. (dump_die_shallow): Print signatured types better. testsuite/ * gdb.base/maint.exp (maint print statistics): Update expected output.