aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2013-03-27Rename "set debug coff_pe_read" command to "set debug coff-pe-read".Pedro Alves2-1/+6
Hyphens are much more common than underscores in command names. gdb/ 2013-03-27 Pedro Alves <palves@redhat.com> * coff-pe-read.c (_initialize_coff_pe_read): Rename "set debug coff_pe_read" command to "set debug coff-pe-read".
2013-03-27record: fix instruction-history-size regressionMarkus Metzger2-8/+14
* record.c (command_size_to_target_size): Fix size comparison. Change parameter type from pointer to integer to integer. Update all users.
2013-03-27 * windows-nat.c (handle_output_debug_string): Avoid typecastPierre Muller2-1/+6
from integer of different size warning.
2013-03-27 * gdb.base/dprintf.exp: Fix typo preventing "dprintf info 2"Keith Seitz2-1/+6
from passing.
2013-03-27*** empty log message ***gdbadmin1-1/+1
2013-03-26windows-nat.c: Add empty line after local block variable definitions.Joel Brobecker2-0/+7
gdb/ChangeLog: * windows-nat.c (handle_output_debug_string): Add empty line after local block variable definition.
2013-03-26ser-tcp.c: Small signed->unsigned cleanup.Pedro Alves2-2/+7
The "set tcp connect-timeout" variable is unsigned: /* Timeout period for connections, in seconds. */ static unsigned int tcp_retry_limit = 15; And used like: /* Check for timeout. */ if (*polls > tcp_retry_limit * POLL_INTERVAL) { errno = ETIMEDOUT; return -1; } Which made me stop and look over why is it that 'polls' is signed. What I found is there's really no reason. gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * ser-tcp.c (wait_for_connect): Make 'polls' parameter unsigned. (net_open): Make 'polls' local unsigned.
2013-03-26Make "set/show remoteaddresssize" a zuinteger command instead of uinteger.Pedro Alves2-5/+10
It makes no sense to talk about an "unlimited" address size in this context. (gdb) show remoteaddresssize The maximum size of the address (in bits) in a memory packet is 0. (gdb) set remoteaddresssize 0 (gdb) show remoteaddresssize The maximum size of the address (in bits) in a memory packet is unlimited. "set remoteaddresssize 0" mapping to UINT_MAX means you can't force gdb through this path twice in the same GDB run: static CORE_ADDR remote_address_masked (CORE_ADDR addr) { unsigned int address_size = remote_address_size; /* If "remoteaddresssize" was not set, default to target address size. */ if (!address_size) address_size = gdbarch_addr_bit (target_gdbarch ()); gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * remote.c (_initialize_remote): Make "set remoteaddresssize" a zuinteger command instead of uinteger.
2013-03-26record-full.c: Remove always true checks.Pedro Alves2-32/+35
The "set record full insn-number-max" command is an uinteger command. If the variable that holds the maximum count of logged instructions is unsigned, it's better if the variable that holds the current number of logged instructions is also unsigned. Looking over the code, there's no case the variable could end up negative. Then, tests like "if (record_full_insn_max_num)" are always true, because being a uinteger command means that "set record full insn-number-max 0" is actually mapped to UINT_MAX internally. IOW, the command's variable is never 0. The checks might make some sense if 0 wasn't mapped to UINT_MAX, and 0 meant unlimited, but, that's not how things work. Tested on x86_64 Fedora 17. gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * record-full.c (record_full_insn_num): Make it unsigned. (record_full_check_insn_num, record_full_message) (record_full_registers_change, record_full_xfer_partial): Remove record_full_insn_max_num check (it's always != 0). (record_full_info, record_full_restore): Use %u as format string. (): Use %u as format string. (set_record_full_insn_max_num): Remove record_full_insn_max_num check (it's always != 0).
2013-03-26Make "set/show dcache line-size" and "set/show dcache size" zinteger ↵Pedro Alves2-12/+17
commands instead of uinteger. It doesn't make sense to request an "unlimited" dcache. You want to configure the cache with specific lines and length of lines. It doesn't actually work anyway: (gdb) set dcache line-size 0 Invalid dcache line size: 4294967295 (must be power of 2). (gdb) set dcache size 0 (gdb) show dcache size Number of dcache lines is unlimited. (gdb) info dcache Dcache 4294967295 lines of 64 bytes each. No data cache available. The code already has guards in place to forbid 0s: static void set_dcache_size (char *args, int from_tty, struct cmd_list_element *c) { if (dcache_size == 0) { dcache_size = DCACHE_DEFAULT_SIZE; error (_("Dcache size must be greater than 0.")); } if (last_cache) dcache_invalidate (last_cache); } static void set_dcache_line_size (char *args, int from_tty, struct cmd_list_element *c) { if (dcache_line_size < 2 || (dcache_line_size & (dcache_line_size - 1)) != 0) { unsigned d = dcache_line_size; dcache_line_size = DCACHE_DEFAULT_LINE_SIZE; error (_("Invalid dcache line size: %u (must be power of 2)."), d); } if (last_cache) dcache_invalidate (last_cache); } So we now get: (gdb) set dcache line-size 0 Invalid dcache line size: 0 (must be power of 2). (gdb) set dcache size 0 Dcache size must be greater than 0. gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * dcache.c (_initialize_dcache): Make the "set dcache line-size" and "set dcache size" commands zuinteger instead of uinteger.
2013-03-26Make "set/show cris-version" a zuinteger instead of uinteger.Pedro Alves2-9/+14
Being a uinteger means you revert back to having GDB decide the version. It makes no sense to have an "unlimited" version. (gdb) show cris-version The current CRIS version is 0. (gdb) set cris-version 0 (gdb) show cris-version The current CRIS version is unlimited. (gdb) gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * cris-tdep.c (_initialize_cris_tdep): Make the "set cris-version" command zuinteger instead of uinteger.
2013-03-26Make "set/show debug coff_pe_read" a zuinteger instead of uinteger.Pedro Alves2-8/+13
Being a uinteger means you can't disable debug output after enabling it... (gdb) show debug coff_pe_read Coff PE read debugging is 0. (gdb) set debug coff_pe_read 0 (gdb) show debug coff_pe_read Coff PE read debugging is unlimited. (gdb) gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * coff-pe-read.c (_initialize_coff_pe_read): Make the command zuinteger instead of uinteger.
2013-03-26Get rid of "No such file or directory" in the testsuite's btrace support ↵Pedro Alves2-1/+8
detection. When I tried running the btrace tests, I noticed something odd in the gdb.log file: (gdb) run Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.x Breakpoint 1, main () at /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.c:1 1 /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.c: No such file or directory. ^^^^^^^^^^^^^^^^^^^^^^^^^ (gdb) record btrace Target does not support branch tracing. (gdb) testcase ../../../src/gdb/testsuite/gdb.btrace/enable.exp completed in 0 seconds I knew that the btrace tests on my machine weren't supposed to work, but still, that error made me wonder if the test had something broken, and waste a few minutes looking up where that is coming from. The issue is that the btrace detection deletes the source file right after compiling it, and before GDB has a chance to open it. It's really harmless, but I'd rather spare others from going through the same exercise. We now get the regular: (gdb) run Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace24210.x ... Breakpoint 1, main () at /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace24210.c:1 1 int main(void) { return 0; } ... gdb/testsuite/ 2013-03-26 Pedro Alves <palves@redhat.com> * lib/gdb.exp (skip_btrace_tests): Delay deleting the source file until after GDB has run.
2013-03-26"set record instruction-history-size"/"set record ↵Pedro Alves2-16/+101
function-call-history-size" range validation. While the commands are uinteger, the target interfaces are limited to INT_MAX. Don't let the user request more than we can handle. gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * record.c (record_insn_history_size_setshow_var) (record_call_history_size_setshow_var): New globals. (command_size_to_target_size): New function. (cmd_record_insn_history, cmd_record_call_history): Use command_size_to_target_size instead of cast. (validate_history_size, set_record_insn_history_size) (set_record_call_history_size): New functions. (_initialize_record): Install set_record_insn_history_size and set_record_call_history_size as "set" hooks of "set record instruction-history-size" and "set record function-call-history-size".
2013-03-26Use readline's 'history_max_entries' instead of the old 'max_input_history'.Pedro Alves2-7/+7
Ref: http://www.sourceware.org/ml/gdb-patches/2002-08/msg00486.html We've long since imported a newer readline, no need to use the old compatibility variable anymore. Tested on x86_64 Fedora 17. gdb/ 2013-03-26 Pedro Alves <palves@redhat.com> * top.c (gdb_rl_operate_and_get_next): Replace max_input_history use with history_max_entries use. Remove FIXME note.
2013-03-26gdb/testsuite/Yao Qi5-0/+73
* gdb.trace/actions.c, gdb.trace/circ.c: Add license header. * gdb.trace/collection.c, gdb.trace/tfile.c: Likewise.
2013-03-26record-btrace: fix assertion when enabling recording after re-runMarkus Metzger4-0/+24
Reading symbols from /bin/true...(no debugging symbols found)...done. (gdb) b _start Function "_start" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (_start) pending. (gdb) r Starting program: /bin/true Breakpoint 1, 0x00000039a0400af0 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) rec b (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /bin/true Breakpoint 1, 0x00000039a0400af0 in _start () from /lib64/ld-linux-x86-64.so.2 (gdb) rec b gdb/record-btrace.c:154: internal-error: record_btrace_open: Assertion `record_btrace_thread_observer == NULL' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) gdb/ * record-btrace.c (record_btrace_close): Call record_btrace_auto_disable. testsuite/ * gdb.btrace/enable.exp: Add regression test.
2013-03-26Delete rs6000-nat.c:fixup_breakpoints extern declaration.Joel Brobecker2-2/+4
This function does not exist... gdb/ChangeLog: * rs6000-nat.c (fixup_breakpoints): Delete declaration.
2013-03-26*** empty log message ***gdbadmin1-1/+1
2013-03-25 * contrib/cc-with-tweaks.sh: Check exit code of dwp.Doug Evans2-0/+6
2013-03-25 PR symtab/11462:Tom Tromey4-0/+61
* c-exp.y (exp): Add new productions for destructors after '.' and '->'. (write_destructor_name): New function. gdb/testsuite * gdb.cp/m-static.exp: Add destructor-printing tests.
2013-03-25 PR c++/9197:Tom Tromey7-34/+48
* opencl-lang.c (evaluate_subexp_opencl) <STRUCTOP_STRUCT>: Use value_struct_elt, not lookup_struct_elt_type. * eval.c (evaluate_subexp_standard) <STRUCTOP_STRUCT, STRUCTOP_PTR>: Use value_struct_elt, not lookup_struct_elt_type. * expression.h (EVAL_AVOID_SIDE_EFFECTS): Update comment. gdb/testsuite * gdb.cp/m-static.exp: Add constructor ptype tests. * gdb.cp/m-static.cc (single_constructor): New class. (main): Make instance of single_constructor.
2013-03-25gdb/Yao Qi2-1/+7
* ctf.c [USE_WIN32API]: Undef 'mkdir' and use 'mkdir' instead of '_mkdir'.
2013-03-25*** empty log message ***gdbadmin1-1/+1
2013-03-24*** empty log message ***gdbadmin1-1/+1
2013-03-23Fix relocation of directories in the MinGW build.Eli Zaretskii4-5/+44
windows-nat.c (windows_get_absolute_argv0): New function. windows-nat.h: Add its prototype. main.c (get_init_files): Use filename_ncmp instead of strncmp. Use IS_DIR_SEPARATOR instead of looking for a character inside SLASH_STRING. Include filenames.h. (captured_main) [__MINGW32__]: Make argv[0] absolute, so that relocate_gdb_directory works when passed gdb_program_name. Include windows-nat.h.
2013-03-23*** empty log message ***gdbadmin1-1/+1
2013-03-22gdb/Jan Kratochvil8-12/+121
* exceptions.h (enum errors): New entry TARGET_CLOSE_ERROR. * remote.c (trace_error): Remove the special handling of '2'. (readchar) <SERIAL_EOF> (readchar) <SERIAL_ERROR> (getpkt_or_notif_sane_1): Use TARGET_CLOSE_ERROR for them. (remote_get_trace_status): Call throw_exception if EX is TARGET_CLOSE_ERROR. * utils.c (perror_with_name): Rename to ... (throw_perror_with_name): ... here. New parameter errcode, describe it in the function comment. (perror_with_name): New function wrapper. * utils.h (enum errors): New stub declaration. (throw_perror_with_name): New declaration. gdb/testsuite/ * gdb.server/server-kill.c: New file. * gdb.server/server-kill.exp: New file.
2013-03-22Subject: Fix range validation of integer commands with "unlimited".Pedro Alves2-2/+21
The range validation added by http://sourceware.org/ml/gdb-patches/2013-03/msg00767.html Changes things to allow setting the command to INT_MAX or UINT_MAX directly, with signed and unsigned commands respectively. However, that went a little bit too far, as in the cases of var_integer and var_uinteger, those values are actually implementation detail. It's better to not expose them in the interface, and have users assume those values mean "unlimited" too, so to be safer to expand the range of the commands in the future if we want to. Yes, it's pedantic, and it's not likely users actually will do this, but MI frontends and Python scripts might. gdb/ 2013-03-22 Pedro Alves <palves@redhat.com> Yao Qi <yao@codesourcery.com> Mark Kettenis <kettenis@gnu.org> * cli/cli-setshow.c (do_set_command) <var_uinteger>: Don't let the user set the value to UINT_MAX directly. <var_integer>: Don't let the user set the value to INT_MAX directly.
2013-03-22Whoops, wrong patch. Reverting.Pedro Alves2-20/+2
2013-03-22Subject: Fix range validation of integer commands with "unlimited".Pedro Alves2-2/+20
The range validation added by http://sourceware.org/ml/gdb-patches/2013-03/msg00767.html Changes things to allow setting the command to INT_MAX or UINT_MAX directly, with signed and unsigned commands respectively. However, that went a little bit too far, as in the cases of var_integer and var_uinteger, those values are actually implementation detail. It's better to not expose them in the interface, and have users assume those values mean "unlimited" too, so to be safer to expand the range of the commands in the future if we want to. Yes, it's pedantic, and it's not likely users actually will do this, but MI frontends and Python scripts might. gdb/ 2013-03-22 Pedro Alves <palves@redhat.com> Yao Qi <yao@codesourcery.com> Mark Kettenis <kettenis@gnu.org> * cli/cli-setshow.c (do_set_command) <var_uinteger>: Don't let the user set the value to UINT_MAX directly. <var_integer>: Don't let the user set the value to INT_MAX directly.
2013-03-22gdb/Jan Kratochvil2-22/+27
* remote.c (remote_unpush_target): New function. (remote_open_1): Remove two pop_target calls, update one comment, add comment to target_preopen call. Replace pop_target call by remote_unpush_target call. (interrupt_query, readchar, getpkt_or_notif_sane_1): Replace pop_target calls by remote_unpush_target calls.
2013-03-22Linux: No need to set ptrace event options in fork/clone children.Pedro Alves4-6/+12
Oleg Nesterov told me that the Linux kernel copies the parent's ptrace options to fork/clone children, so there's no need for GDB to do that manually. I was actually a bit surprised, since I thought the ptracer had to always set the ptrace options itself, and GDB is indeed calling PTRACE_SETOPTIONS for each new fork child, if it'll stay attached. Looking at the history of that code, I found that is was actually I who added that set-ptrace-options-in-children bit, back in http://sourceware.org/ml/gdb-patches/2009-05/msg00656.html. But, honestly, I don't recall why I needed that. I think I may have just blindly believed it was necessary. I then looked back at the history of all the PTRACE_SETOPTIONS code we have, and found that gdb never did copy the ptrace options before my patch. But, when gdbserver learnt to use PTRACE_EVENT_CLONE, at http://sourceware.org/ml/gdb-patches/2007-10/msg00547.html, it was made to do 'ptrace (PTRACE_SETOPTIONS, new_pid, 0, PTRACE_O_TRACECLONE)' for all new clones. Hmmm. But, GDB itself never did that, so it can't really ever have been necessary, I believe, otherwise GDB should have been doing it too. (GDBserver doesn't support following forks, and so naturally doesn't do any PTRACE_SETOPTIONS on fork children.) So this patch removes the -I believe- unnecessary ptrace syscalls. Tested on x86_64 Fedora 17, native/gdbserver, and on x86_64 RHEL5 native/gdbserver (Linux 2.6.18, I think a ptrace-on-utrace kernel). No regressions. gdb/ 2013-03-22 Pedro Alves <palves@redhat.com> * linux-nat.c (linux_child_follow_fork): Don't call linux_enable_event_reporting. (linux_handle_extended_wait): Don't call linux_enable_event_reporting. gdb/gdbserver/ 2013-03-22 Pedro Alves <palves@redhat.com> * linux-low.c (handle_extended_wait): Don't call linux_enable_event_reporting.
2013-03-22hppa-hpux-tdep.c: Fix host dependency.Pedro Alves2-19/+27
$ make WERROR_CFLAGS="-Wpointer-sign -Werror" hppa-hpux-tdep.o -k 2>&1 1>/dev/null ../../src/gdb/hppa-hpux-tdep.c: In function ‘hppa_hpux_push_dummy_code’: ../../src/gdb/hppa-hpux-tdep.c:1225:7: error: pointer targets in passing argument 2 of ‘write_memory’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/hppa-hpux-tdep.c:22:0: ../../src/gdb/gdbcore.h:85:13: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’ ../../src/gdb/hppa-hpux-tdep.c:1251:7: error: pointer targets in passing argument 2 of ‘write_memory’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/hppa-hpux-tdep.c:22:0: ../../src/gdb/gdbcore.h:85:13: note: expected ‘const gdb_byte *’ but argument is of type ‘char *’ ../../src/gdb/hppa-hpux-tdep.c: In function ‘hppa_hpux_supply_save_state’: ../../src/gdb/hppa-hpux-tdep.c:1354:9: error: pointer targets in passing argument 1 of ‘extract_unsigned_integer’ differ in signedness [-Werror=pointer-sign] In file included from ../../src/gdb/hppa-hpux-tdep.c:20:0: ../../src/gdb/defs.h:675:22: note: expected ‘const gdb_byte *’ but argument is of type ‘const char *’ Casting to gdb_byte would fix it, however, writing an unsigned int array like this static unsigned int hppa64_tramp[] = { 0xeac0f000, /* bve,l (r22),%r2 */ 0x0fdf12d1, /* std r31,-8(,sp) */ 0x0fd110c2, /* ldd -8(,sp),rp */ 0xe840d002, /* bve,n (rp) */ 0x08000240 /* nop */ ... directly to target memory assumes the host endianness is the same as the target's. hppa is big endian, so I believe this patch should be correct -- it defines the array as a gdb_byte array. It uses a macro to make the insn bytes a little more readable. I thought of using write_memory_unsigned_integer once for each element of the unsigned int array, but this way keeps issuing a single target memory write / roundtrip for the whole trampoline. gdb/ 2013-03-22 Pedro Alves <palves@redhat.com> * hppa-hpux-tdep.c (hppa_hpux_push_dummy_code): Define INSN macro, use it to rewrite the trampoline buffers with type gdb_byte[], and undefine the macro. Remove char* cast.
2013-03-22gdb/doc/Yao Qi2-115/+6
* gdb.texinfo (Embedded Processors): Remove menu item "OpenRISC 1000". (OpenRISC 1000): Remove.
2013-03-22*** empty log message ***gdbadmin1-1/+1
2013-03-21Fix gdb.trace/trace-buffer-size.exp race.Pedro Alves2-1/+6
Just the usual missing $gdb_prompt match: (gdb) tstatus No trace has been run on the target. Collected 0 trace frames. Trace buffer has 5242880 bytes of 5242880 bytes free (0% full). Trace will stop if GDB disconnects. Not looking at any trace frame. PASS: gdb.trace/trace-buffer-size.exp: get default buffer size (gdb) set trace-buffer-size 4 (gdb) FAIL: gdb.trace/trace-buffer-size.exp: set trace buffer size 1 This fixes it. gdb/testsuite/ 2013-03-21 Pedro Alves <palves@redhat.com> * gdb.trace/trace-buffer-size.exp (get default buffer size): Expect $gdb_prompt in gdb_test_multiple.
2013-03-21 New commands "mt set per-command {space,time,symtab} {on,off}".Doug Evans15-166/+464
* NEWS: Add entry. * event-top.c: #include "maint.h". * main.c: #include "maint.h". * maint.c: #include <sys/time.h>, <time.h>, block.h, top.h, timeval-utils.h, maint.h, cli/cli-setshow.h. (per_command_time, per_command_space): New static globals. (per_command_symtab): New static global. (per_command_setlist, per_command_showlist): New static globals. (struct cmd_stats): Move here from utils.c. (set_per_command_time): Renamed from set_display_time in utils.c and moved here. All callers updated. (set_per_command_space): Renamed from set_display_space in utils.c and moved here. All callers updated. (count_symtabs_and_blocks): New function. (report_command_stats): Moved here from utils.c. Add support for printing symtab stats. Only print data if enabled before command executed. (make_command_stats_cleanup): Ditto. (sert_per_command_cmd, show_per_command_cmd): New functions. (_initialize_maint_cmds): Add new commands mt set per-command {space,time,symtab} {on,off}. * maint.h: New file. * top.c: #include "maint.h". * utils.c (reset_prompt_for_continue_wait_time): New function. (get_prompt_for_continue_wait_time): New function. * utils.h (reset_prompt_for_continue_wait_time): Declare (get_prompt_for_continue_wait_time): Declare. (make_command_stats_cleanup): Moved to maint.h. (set_display_time, set_display_space): Moved to maint.h and renamed to set_per_command_time, set_per_command_space. * cli/cli-setshow.c (parse_cli_boolean_value): Renamed from parse_binary_operation and made non-static. Don't call error, just return an error marker. All callers updated. * cli/cli-setshow.h (parse_cli_boolean_value): Declare. doc/ * gdb.texinfo (Maintenance Commands): Add docs for "mt set per-command {space,time,symtab} {on,off}". testsuite/ * gdb.base/maint.exp: Update tests for per-command stats.
2013-03-21 * symfile.c (alloc_section_addr_info): Update header. Don't setTom Tromey6-13/+39
'num_sections' field. (build_section_addr_info_from_section_table): Set 'num_sections'. (build_section_addr_info_from_bfd): Likewise. (build_section_addr_info_from_objfile): Remove dead loop condition. (free_section_addr_info): Unconditionally call xfree. (relative_addr_info_to_section_offsets, addrs_section_sort) (addr_info_make_relative, syms_from_objfile_1): Remove dead loop condition. (syms_from_objfile_1): Remove dead 'if' condition. Check 'num_sections'. (add_symbol_file_command): Set 'num_sections'. * symfile-mem.c (symbol_file_add_from_memory): Set 'num_sections'. * somread.c (som_symfile_offsets): Remove dead loop condition. * machoread.c (macho_symfile_offsets): Remove dead 'if'. * jit.c (jit_bfd_try_read_symtab): Set 'num_sections'.
2013-03-21fix date in ChangeLog entryTom Tromey1-1/+1
2013-03-21 * tracepoint.h (decode_agent_options): Add 'trace_string'Tom Tromey8-82/+120
argument. * tracepoint.c (decode_agent_options): Add 'trace_string' argument. (validate_actionline): Update. (collect_symbol): Add 'trace_string' argument. (struct add_local_symbols_data) <trace_string>: New field. (do_collect_symbol): Update. (add_local_symbols): Add 'trace_string' argument. (encode_actions_1): Update. (trace_dump_actions): Update. * dwarf2loc.c (access_memory): Update. * ax.h (struct agent_expr) <tracing, trace_string>: New fields. * ax-general.c (new_agent_expr): Update. * ax-gdb.h (gen_trace_for_expr, gen_trace_for_var) (gen_trace_for_return_address): Add argument. (trace_kludge, trace_string_kludge): Remove. * ax-gdb.c (trace_kludge, trace_string_kludge): Remove. (gen_traced_pop, gen_fetch, gen_bitfield_ref, gen_expr): Update. (gen_trace_for_var): Add 'trace_string' argument. (gen_trace_for_expr, gen_trace_for_return_address): Likewise. (gen_printf, agent_eval_command_one): Update.
2013-03-21 PR exp/15109:Tom Tromey5-51/+95
* c-exp.y (yylex): Rewrite to push all tokens onto the FIFO. Handle FILENAME token. gdb/testsuite * gdb.cp/cpexprs.exp: Add test for FILENAME:: case. * gdb.cp/misc.exp: Add test for FILENAME:: case.
2013-03-21 * c-exp.y (YYPRINT): Define.Tom Tromey2-0/+61
(c_print_token): New function.
2013-03-21 * c-exp.y (%union) <sym, ivar, ivec>: Remove.Tom Tromey2-3/+4
2013-03-21gdb/Yao Qi2-2/+24
* ctf.c: Include "gdb_stat.h". [USE_WIN32API]: New macro 'mkdir'. (ctf_start): Use permission bits macros if they are defined.
2013-03-21*** empty log message ***gdbadmin1-1/+1
2013-03-20 * breakpoint.h (struct breakpoint): Add comment toKeith Seitz3-1/+9
extra_string indicating that this member is mallod'd. * breakpoint.c (base_breakpoint_dtor): Free extra_string.
2013-03-20Fix PR gdb/15289 - "set remote hardware-watchpoint-limit" broken (zinteger ↵Pedro Alves4-8/+52
commands) This is a regression from 7.5, introduced/exposed by: http://sourceware.org/ml/gdb-patches/2012-07/msg00259.html There are a series of issues with this code. It does: unsigned int val = parse_and_eval_long (arg); ^^^^^^^^^^^^ (unsigned, usually 32-bit) while parse_and_eval_long returns a LONGEST (usually 64-bit), so we lose precision without noticing: (gdb) set remote hardware-watchpoint-limit 0x100000000 (gdb) show remote hardware-watchpoint-limit 0x100000000 The maximum number of target hardware watchpoints is 0. While at it, print the invalid number with plongest, so the user sees what GDB thought the number was: (gdb) set remote hardware-watchpoint-limit 0x100000000 integer 4294967296 out of range So with "set remote hardware-watchpoint-limit -1", val ends converted to 0xffffffff, which then fails the else if (val >= INT_MAX) error (_("integer %u out of range"), val); test. Looking at that INT_MAX check, we forbid INT_MAX itself, but we shouldn't, as that does fit in 'int' -- we want to forbid values _greater_ than INT_MAX (and less than INT_MIN, while at it): (gdb) set remote hardware-watchpoint-limit 2147483647 integer 2147483647 out of range The same problem is in the new var_zuinteger_unlimited code, which also uses "int" for variable. Also, when printing a 'signed int', we should use %d, not %u. This adds a couple regression tests. Not completely thorough in checking all kinds of invalid input; I'm saving more exaustive testing around zXXinteger commands for something like new test-assisting commands like "maint test cmd-zinteger -1", where testing would focus on the command types, and thus be independent of particular user commands of particular GDB features. Tested on x86_64 Fedora 17. gdb/ 2013-03-20 Pedro Alves <palves@redhat.com> PR gdb/15289 * cli/cli-setshow.c (do_set_command) <var_uinteger, var_zuinteger>: Use LONGEST for variable holding the result of parsing the command argument. Throw error if the value is greater than UINT_MAX. Print the invalid value with plongest. <var_integer, var_zinteger>: Use LONGEST for variable holding the result of parsing the command argument. Throw error if the value is greater than INT_MAX, not greater or equal. Also throw error if the value is less than INT_MIN. Print the invalid value with plongest. <var_zuinteger_unlimited>: Throw error if the value is greater than INT_MAX, not greater or equal. (do_show_command) <var_integer, var_zinteger, var_zuinteger_unlimited>: Use %d for printing int, not %u. gdb/testsuite/ 2013-03-20 Pedro Alves <palves@redhat.com> PR gdb/15289 * gdb.base/remote.exp: Test "set remote hardware-watchpoint-limit -1", "set remote hardware-breakpoint-limit -1", "set remote hardware-watchpoint-limit 2147483647" and "set remote hardware-breakpoint-limit 2147483647".
2013-03-20 * ax-gdb.c (gen_var_ref): Unconditionally call via computed ops,Tom Tromey9-129/+148
if possible. * dwarf2read.c (read_func_scope): Remove old FIXME. * eval.c (evaluate_subexp_standard): Check SYMBOL_COMPUTED_OPS, not LOC_COMPUTED. * findvar.c (symbol_read_needs_frame, default_read_var_value): Unconditionally call via computed ops, if possible. * printcmd.c (address_info): Unconditionally call via computed ops, if possible. * stack.c (read_frame_arg): Unconditionally call via computed ops, if possible. * symtab.c (register_symbol_computed_impl): Sanity check 'ops'. * tracepoint.c (scope_info): Unconditionally call via computed ops, if possible.
2013-03-202013-03-20 Jan Kratochvil <jan.kratochvil@redhat.com>Tom Tromey13-141/+412
Tom Tromey <tromey@redhat.com> PR symtab/8421: * coffread.c (coff_register_index): New global. (process_coff_symbol, coff_read_enum_type): Set SYMBOL_ACLASS_INDEX. (_initialize_coffread): Initialize new global. * dwarf2loc.c (locexpr_find_frame_base_location) (dwarf2_block_frame_base_locexpr_funcs) (loclist_find_frame_base_location) (dwarf2_block_frame_base_loclist_funcs): New. (dwarf_expr_frame_base_1): Call SYMBOL_BLOCK_OPS, remove internal_error. (dwarf2_locexpr_funcs, dwarf2_loclist_funcs): Add location_has_loclist. * dwarf2loc.h (dwarf2_block_frame_base_locexpr_funcs) (dwarf2_block_frame_base_loclist_funcs): New. * dwarf2read.c (dwarf2_locexpr_index, dwarf2_loclist_index) (dwarf2_locexpr_block_index, dwarf2_loclist_block_index): New globals. (read_func_scope): Update. (fixup_go_packaging, mark_common_block_symbol_computed) (var_decode_location, new_symbol_full, dwarf2_const_value): Set SYMBOL_ACLASS_INDEX. (dwarf2_symbol_mark_computed): Likewise. Add 'is_block' argument. (_initialize_dwarf2_read): Initialize new globals. * jit.c (finalize_symtab): Set SYMBOL_ACLASS_INDEX. * jv-lang.c (add_class_symbol): Set SYMBOL_ACLASS_INDEX. * mdebugread.c (mdebug_register_index, mdebug_regparm_index): New globals. (parse_symbol, psymtab_to_symtab_1): Set SYMBOL_ACLASS_INDEX. (_initialize_mdebugread): Initialize new globals. * psympriv.h (struct partial_symbol) <aclass>: Update comment. * stabsread.c (patch_block_stabs): Set SYMBOL_ACLASS_INDEX. (stab_register_index, stab_regparm_index): New globals. (define_symbol, read_enum_type, common_block_end): Set SYMBOL_ACLASS_INDEX. (_initialize_stabsread): Initialize new globals. * symtab.c (next_aclass_value, symbol_impl, symbol_impls): New globals. (MAX_SYMBOL_IMPLS): New define. (register_symbol_computed_impl, register_symbol_block_impl) (register_symbol_register_impl) (initialize_ordinary_address_classes): New functions. (_initialize_symtab): Call initialize_ordinary_address_classes. * symtab.h (enum address_class) <LOC_FINAL_VALUE>: New constant. (struct symbol_impl): New. (SYMBOL_ACLASS_BITS): New define. (struct symbol) <aclass, ops>: Remove fields. <aclass_index>: New field. (symbol_impls): Declare. (SYMBOL_CLASS, SYMBOL_COMPUTED_OPS, SYMBOL_REGISTER_OPS): Redefine. (SYMBOL_IMPL, SYMBOL_ACLASS_INDEX): New defines. (register_symbol_computed_impl, register_symbol_block_impl) (register_symbol_register_impl): Declare. (struct symbol_computed_ops): Add location_has_loclist. (struct symbol_block_ops): New. (SYMBOL_BLOCK_OPS): New. * xcoffread.c (process_xcoff_symbol): Set SYMBOL_ACLASS_INDEX.