Age | Commit message (Collapse) | Author | Files | Lines |
|
This is something I noticed while looking at ada_find_any_type.
Use of that function is expensive, since it causes a global lookup.
Reviewing some of the uses, I found that we were calling it to get
a specific type everytime we print a tagged type (the equivalent of
classes in C++); and not only that, we did it 4 times [1]!
Since the type in question (ada__tags__type_specific_data) is guarantied
to remain the same througout the entire life of the inferior, the solution
was to cache that type in inferior private data. This patch creates
an ada-land private-data area, and uses it to store that type after
the first time we look it up.
[1]: The problem is mitigated in AdaCore's tree because we use an Ada
symbol cache which we are thinking of contributing to the FSF tree.
But that's still pretty bad, regardless.
2010-05-27 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ada_inferior_data): New struct.
(ada_inferior_data): New static global.
(ada_inferior_data_cleanup, get_ada_inferior_data, ada_inferior_exit)
(ada_get_tsd_type): New functions.
(ada_tag_name_2): Use ada_get_tsd_type instead of ada_find_any_type
to look the tsd type up.
(_initialize_ada_language): Attach ada_inferior_exit to inferior_exit
event. Set ada_inferior_data.
|
|
|
|
* gdb.base/relational.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/relocate.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/restore.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/return.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/return2.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/sepdebug.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/setshow.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/setvar.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/shlib-call.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/shreloc.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/sigall.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/sigbpt.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/signull.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/so-impl-ld.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/varargs.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/volatile.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/watch_thread_num.exp: Replace uses of send_gdb / gdb_expect.
* gdb.base/watchpoint.exp: Replace uses of send_gdb / gdb_expect.
|
|
* gdb.base/break.exp: Replace uses of send_gdb / gdb_expect.
|
|
(remote_console_output): Make static, and add forward declaration.
* remote.h: Drop FIXME comment.
(unpack_varlen_hex): Declare.
(remote_console_output, remote_cisco_objfile_relocate)
(deprecated_target_resume_hook, deprecated_target_wait_loop_hook):
Delete declarations.
* tracepoint.c: Include "remote.h".
(unpack_varlen_hex): Delete declaration.
|
|
(allocate_piece_closure): Initialize refc.
(copy_pieced_value_closure): Use refc.
(free_pieced_value_closure): Likewise.
|
|
(arm_push_dummy_call): Make 'val' const. Use value_contents, not
value_contents_writeable. Introduce new temporary.
|
|
value_contents_raw.
|
|
const. Use value_contents, not value_contents_writeable.
|
|
This is something that Tom spotted. It shouldn't make much of a difference
in practice with the current code, but Tom is planning on making some
changes (bitwise optimized-out tracking) in value_contents...
2010-05-27 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ensure_lval): Replace call to value_contents_raw
by call to value_contents.
|
|
* gdb/MAINTAINERS: Add myself for write after approval privileges.
|
|
* acinclude.m4 (GDB_AC_DEFINE_RELOCATABLE): New function.
(GDB_AC_WITH_DIR): Call it.
* configure.ac: Define WITH_PYTHON_PATH if we can find the
python installation directory.
* config.in: Regenerate.
* configure: Regenerate.
* defs.h (python_libdir): Declare.
* main.c (python_libdir): Define.
(captured_main): Initialize python_libdir.
* python/python.c (_initialize_python): #ifdef WITH_PYTHON_PATH,
call Py_SetProgramName to make sure python can find its libraries
and modules.
|
|
parameters.
* configure: Regenerate.
* python/python-config.py: New file.
|
|
|
|
gdb/
* ser-tcp.c (net_open): Check error return from socket() call by its
equality to -1 not by it being negative.
(net_close): Likewise.
gdb/gdbserver/
* gdbreplay.c (remote_open): Check error return from socket() call by
its equality to -1 not by it being negative.
* remote-utils.c (remote_open): Likewise.
sim/arm/
* communicate.c (MYread_char): Check error return from accept() call
by its equality to -1 not by it being negative.
(MYread_charwait): Likewise.
* main.c (main): Likewise for both socket() and accept() calls.
sim/common/
* dv-sockser.c (dv_sockser_init): Check error return from socket()
call by its equality to -1 not by it being negative.
(connected_p): Likewise for accept() call.
sim/cris/
* dv-rv.c (hw_rv_init_socket): Check error return from socket() call
by its equality to -1 not by it being negative.
(hw_rv_write): Likewise.
(hw_rv_handle_incoming): Likewise.
(hw_rv_poll_once): Likewise.
* rvdummy.c (setupsocket): Likewise.
(main): Likewise for accept() call as returned from setupsocket().
sim/m32c/
* main.c (setup_tcp_console): Check error return from socket() call
by its equality to -1 not by it being negative.
|
|
* gdb.java/jmisc.exp: Replace send_gdb with gdb_test.
* gdb.java/jprint.exp: Replace send_gdb with gdb_test.
|
|
* gdb.gdb/complaints.exp: Replace send_gdb with gdb_test.
* gdb.gdb/selftest.exp: Replace send_gdb with gdb_test.
* gdb.gdb/xfullpath.exp: Replace send_gdb with gdb_test.
|
|
2010-05-26 Pedro Alves <pedro@codesourcery.com>
* NEWS: Mention the `qRelocInsn' feature.
* gdbarch.sh (relocate_instruction): New.
* amd64-tdep.c (rip_relative_offset): New.
(append_insns): New.
(amd64_relocate_instruction): New.
(amd64_init_abi): Install it.
* i386-tdep.c (append_insns): New.
(i386_relocate_instruction): New.
(i386_gdbarch_init): Install it.
* remote.c (remote_get_noisy_reply): Handle qRelocInsn requests.
* gdbarch.h, gdbarch.c: Regenerate.
gdb/doc/
2010-05-26 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo (General Query Packets) <qSupported>: Describe the
`qRelocInsn' feature.
(Relocate instruction reply packet): New subsection
of `Tracepoint Packets'.
(Tracepoint Packets): Mention that packets QTDP and QTStart
support the qRelocInsn request, and add cross reference to new
subsection.
|
|
* gdb.reverse/consecutive-reverse.exp: Replace send_gdb with gdb_test.
* gdb.reverse/consecutive-precsave.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-basics.exp:
* gdb.mi/mi-nonstop-exit.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-nonstop.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-ns-stale-regcache.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-nsintrall.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-nsmoribund.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-nsthrexec.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-return.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi-var-display.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi2-basics.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi2-console.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi2-return.exp: Replace send_gdb with gdb_test.
* gdb.mi/mi2-var-display.exp: Replace send_gdb with gdb_test.
|
|
* gdb.ada/formatted_ref.exp: Replace send_gdb with gdb_test.
* gdb.asm/asm-source.exp: Replace send_gdb with gdb_test.
* gdb.base/a2-run.exp: Replace send_gdb with gdb_test.
* gdb.base/all-bin.exp: Replace send_gdb with gdb_test.
* gdb.base/annota1.exp: Replace send_gdb with gdb_test.
* gdb.base/annota3.exp: Replace send_gdb with gdb_test.
* gdb.base/assign.exp: Replace send_gdb with gdb_test.
* gdb.base/attach.exp: Replace send_gdb with gdb_test.
* gdb.base/bitfields.exp: Replace send_gdb with gdb_test.
* gdb.base/bitfields2.exp: Replace send_gdb with gdb_test.
* gdb.base/bitops.exp: Replace send_gdb with gdb_test.
|
|
(struct dwarf2_loclist_baton) <data>: Likewise.
* dwarf2loc.c (find_location_expression): Constify return type.
(dwarf2_evaluate_loc_desc): Make 'data' argument const.
(dwarf2_loc_desc_needs_frame): Likewise.
(loclist_read_variable): Constify.
(loclist_describe_location): Likewise.
(loclist_tracepoint_var_ref): Likewise.
|
|
|
|
|
|
argument order.
* gdb.base/macscp.exp: Fix setup_kfail argument order.
* gdb.base/long_long.exp (gdb_test_xxx): Fix setup_kfail argument
order.
* gdb.base/sigbpt.exp (stepi_out): Fix setup_kfail argument
order.
* gdb.base/call-sc.exp (setup_kfails): Remove.
(setup_compiler_kfails): Remove.
* gdb.base/callfuncs.exp (do_function_calls): Fix setup_kfail
argument order.
* gdb.base/siginfo.exp: Fix setup_kfail argument order.
* gdb.base/sigstep.exp (advance): Fix setup_kfail argument order.
(advancei): Fix setup_kfail argument order.
* gdb.base/radix.exp: Fix setup_kfail argument order.
* gdb.base/solib-weak.exp (do_test): Fix setup_kfail argument
order.
* gdb.base/structs.exp (setup_kfails): Remove.
(setup_compiler_kfails): Fix setup_kfail argument order.
* gdb.base/sigaltstack.exp (finish_test): Fix setup_kfail argument
order.
* gdb.java/jmain.exp: Fix setup_kfail argument order.
* gdb.pascal/types.exp (test_string_literal_types_accepted): Fix
setup_kfail argument order.
* gdb.cp/overload.exp: Fix setup_kfail argument order.
|
|
|
|
* gdb.base/maint.exp: Replace send_gdb with gdb_test.
* gdb.base/miscexprs.exp: Replace send_gdb with gdb_test.
* gdb.base/nodebug.exp: Replace send_gdb with gdb_test.
* gdb.base/pointers.exp: Replace send_gdb with gdb_test.
* gdb.base/ptype.exp: Replace send_gdb with gdb_test.
|
|
(dwarf_expr_frame_base_1): Likewise.
(read_pieced_value): Update.
(needs_frame_frame_base): Constify.
(dwarf2_tracepoint_var_loc): Likewise.
(dwarf2_tracepoint_var_access): Likewise.
(locexpr_describe_location_piece): Likewise.
(locexpr_describe_location_1): Likewise.
* dwarf2expr.h (struct dwarf_expr_context) <get_frame_base>:
Constify.
(data): Now const.
(struct dwarf_expr_piece) <v.literal.data>: Likewise.
(dwarf_expr_eval, read_uleb128, read_sleb128)
(dwarf2_read_address): Update.
* dwarf2expr.c (dwarf_expr_eval): Constify.
(read_uleb128): Likewise.
(read_sleb128): Likewise.
(dwarf2_read_address): Likewise.
(require_composition): Likewise.
(execute_stack_op): Likewise.
* dwarf2-frame.h (struct dwarf2_frame_state_reg) <loc.exp>: Now a
"const gdb_byte *".
* dwarf2-frame.c (struct dwarf2_frame_state_reg_info) <cfa_exp>:
Now const.
(no_get_frame_base): Constify.
(execute_stack_op): Likewise.
(execute_cfa_program): Likewise.
(read_encoded_value): Likewise.
|
|
|
|
* event-loop.c: ... here.
* tui/tui-io.c (tui_readline_output): Rename parameter `code' to
`error' for clarity.
(tui_getc): Pass correct value for `error' parameter to
tui_readline_output.
|
|
* NEWS: Document them.
* python/py-cmd.c (cmdpy_function): Don't print a traceback if
the exception is gdb.GdbError. Print a second traceback if there's
an error computing the error message.
(gdbpy_string_to_argv): New function.
* python/py-utils.c (gdbpy_obj_to_string): New function.
(gdbpy_exception_to_string): New function.
* python/python-internal.h (gdbpy_string_to_argv): Declare.
(gdbpy_obj_to_string, gdbpy_exception_to_string): Declare.
(gdbpy_gdberror_exc): Declare.
* python/python.c (gdbpy_gdberror_exc): New global.
(_initialize_python): Initialize gdbpy_gdberror_exc and create
gdb.GdbError.
(GdbMethods): Add string_to_argv.
doc/
* gdb.texinfo (Exception Handling): Document gdb.GdbError.
(Commands In Python): Document gdb.string_to_argv.
testsuite/
* gdb.python/py-cmd.exp: Add tests for gdb.GdbError and
gdb.string_to_argv.
|
|
failure explanation.
|
|
|
|
|
|
* gdb.base/default.exp: Replace send_gdb with gdb_test.
* gdb.base/define.exp: Replace send_gdb with gdb_test.
* gdb.base/display.exp: Replace send_gdb with gdb_test.
* gdb.base/dump.exp: Replace send_gdb with gdb_test.
* gdb.base/ending-run.exp: Replace send_gdb with gdb_test.
* gdb.base/eval-skip.exp: Replace send_gdb with gdb_test.
* gdb.base/exprs.exp: Replace send_gdb with gdb_test.
* gdb.base/fileio.exp: Replace send_gdb with gdb_test.
* gdb.base/finish.exp: Replace send_gdb with gdb_test.
* gdb.base/foll-fork.exp: Replace send_gdb with gdb_test.
* gdb.base/funcargs.exp: Replace send_gdb with gdb_test.
* gdb.base/gcore-buffer-overflow.exp: Replace send_gdb with gdb_test.
* gdb.base/gcore.exp: Replace send_gdb with gdb_test.
* gdb.base/gdb1090.exp: Replace send_gdb with gdb_test.
* gdb.base/gdbvars.exp: Replace send_gdb with gdb_test.
* gdb.base/help.exp: Replace send_gdb with gdb_test.
* gdb.base/info-proc.exp: Replace send_gdb with gdb_test.
* gdb.base/jump.exp: Replace send_gdb with gdb_test.
* gdb.base/long_long.exp: Replace send_gdb with gdb_test.
|
|
* gdb.base/call-ar-st.exp: Replace send_gdb with gdb_test.
* gdb.base/callfuncs.exp: Replace send_gdb with gdb_test.
* gdb.base/call-rt-st.exp: Replace send_gdb with gdb_test.
* gdb.base/call-signal-resume.exp: Replace send_gdb with gdb_test.
* gdb.base/call-strs.exp: Replace send_gdb with gdb_test.
* gdb.base/catch-syscall.exp: Replace send_gdb with gdb_test.
* gdb.base/charset.exp: Replace send_gdb with gdb_test.
* gdb.base/checkpoint.exp: Replace send_gdb with gdb_test.
* gdb.base/commands.exp: Replace send_gdb with gdb_test.
* gdb.base/condbreak.exp: Replace send_gdb with gdb_test.
* gdb.base/cond-exprs.exp: Replace send_gdb with gdb_test.
* gdb.base/consecutive.exp: Replace send_gdb with gdb_test.
* gdb.base/constvars.exp: Replace send_gdb with gdb_test.
* gdb.base/corefile.exp: Replace send_gdb with gdb_test.
|
|
|
|
Code cleanup.
* target.c (push_target): Return only void. Remove the return value
comment.
* target.h (push_target): Return only void.
|
|
|
|
2010-05-23 Pedro Alves <pedro@codesourcery.com>
Update gnulib from latest git.
(250b80067c1e1d8faa0c42fb572f721975b929c5)
* gnulib/memcmp.c: Removed.
* gnulib/memchr.valgrind: New.
* gnulib/stddef.in.h: New.
* gnulib/Makefile.am: Updated.
* gnulib/memchr.c: Updated.
* gnulib/memmem.c: Updated.
* gnulib/stdint.in.h: Updated.
* gnulib/str-two-way.h: Updated.
* gnulib/string.in.h: Updated.
* gnulib/wchar.in.h: Updated.
* gnulib/extra/link-warning.h: Removed.
* gnulib/extra/c++defs.h: New.
* gnulib/extra/warn-on-use.h: New.
* gnulib/extra/arg-nonnull.h: Updated.
* gnulib/m4/extensions.m4: Updated.
* gnulib/m4/gnulib-cache.m4: Updated.
* gnulib/m4/gnulib-common.m4: Updated.
* gnulib/m4/gnulib-comp.m4: Updated.
* gnulib/m4/gnulib-tool.m4: Updated.
* gnulib/m4/include_next.m4: Updated.
* gnulib/m4/longlong.m4: Updated.
* gnulib/m4/memchr.m4: Updated.
* gnulib/m4/memmem.m4: Updated.
* gnulib/m4/stdint.m4: Updated.
* gnulib/m4/string_h.m4: Updated.
* gnulib/m4/memcmp.m4: Removed.
* gnulib/m4/onceonly_2_57.m4: Removed.
* gnulib/m4/00gnulib.m4: New.
* gnulib/m4/mmap-anon.m4: New.
* gnulib/m4/multiarch.m4: New.
* gnulib/m4/onceonly.m4: New.
* gnulib/m4/stddef_h.m4: New.
* gnulib/m4/warn-on-use.m4: New.
* gnulib/m4/wchar.m4: Removed.
* gnulib/m4/wchar_h.m4: New.
* gnulib/m4/wchar_t.m4: New.
* gnulib/m4/wint_t.m4: New.
* aclocal.m4: Regenerate.
* config.in: Likewise.
* configure: Likewise.
* gnulib/Makefile.in: Likewise.
gdb/gdbserver/
2010-05-23 Pedro Alves <pedro@codesourcery.com>
* config.h, configure: Regenerate.
|
|
|
|
|
|
* dwarf2loc.c (extract_bits_primitive): New function.
(extract_bits): Likewise.
(insert_bits): Likewise.
(copy_bitwise): Likewise.
(read_pieced_value): Do all operations in bits.
(write_pieced_value): Likewise.
* dwarf2expr.h (struct dwarf_expr_piece) <offset>: New field.
* dwarf2expr.c (add_piece): New arguments bit_piece, offset.
Always use xrealloc to resize piece array.
(execute_stack_op) <DW_OP_reg0>: Handle DW_OP_bit_piece.
<DW_OP_piece>: Update.
<DW_OP_bit_piece>: New case.
gdb/testsuite
* gdb.dwarf2/pieces.exp (pieces_test_f3): New proc.
Call it.
* gdb.dwarf2/pieces.S: Update.
* gdb.dwarf2/pieces.c (struct B): Remove initial field.
|
|
* dwarf2loc.c (read_pieced_value): Exit loop when result is full.
<DWARF_VALUE_OPTIMIZED_OUT>: New case.
* dwarf2expr.h (enum dwarf_value_location)
<DWARF_VALUE_OPTIMIZED_OUT>: New constant.
* dwarf2expr.c (dwarf_expr_stack_empty_p): New function.
(add_piece): Handle empty piece.
(execute_stack_op) <DW_OP_piece>: Handle
DWARF_VALUE_OPTIMIZED_OUT.
gdb/testsuite
* gdb.dwarf2/pieces.exp (pieces_test_f6): New proc.
Call it.
* gdb.dwarf2/pieces.c (struct C): New.
(f6): New function.
* gdb.dwarf2/pieces.S: Replace.
|
|
* eval.c (evaluate_subexp_standard) <BINOP_SUBSCRIPT>: Call
evaluate_subexp, not evaluate_subexp_with_coercion.
gdb/testsuite
* gdb.dwarf2/pieces.exp (pieces_test_f2): New proc.
Call it.
|
|
attribute.
|
|
* dwarf2loc.c (read_pieced_value): Work properly when 'v' has an
offset.
(write_pieced_value): Likewise.
gdb/testsuite
* gdb.dwarf2.pieces.exp: New file.
* gdb.dwarf2.pieces.S: New file.
* gdb.dwarf2.pieces.c: New file.
|
|
and DW_TAG_volatile_type.
(new_symbol): Likewise.
|
|
|
|
This new testsuite routine allows us to test commands that are not
expected to generate any output.
2010-05-20 Pedro Alves <pedro@codesourcery.com>
Joel Brobecker <brobecker@adacore.com>
* lib/gdb.exp (gdb_test_no_output): New function.
* lib/gdb.ada/arrayidx.exp: Use gdb_test_no_output instead of gdb_test
when testing commands that should produce no output.
Tested on x86_64-linux.
|
|
to obtain the number of elements in an array.
|