* NEWS: Document inlined function support.
* Makefile.in (SFILES): Add inline-frame.c.
(COMMON_OBS): Add inline-frame.o.
* block.c (contained_in): Rewrite to use lexical nesting.
(block_linkage_function): Skip inlined function blocks.
(block_inlined_p): New.
* block.h (struct block): Update comment.
(block_inlined_p): New prototype.
* blockframe.c (get_frame_block): Handle inlined functions.
(get_frame_function): Do not use block_linkage_function.
(block_innermost_frame): Use get_frame_block and contained_in.
* breakpoint.c (watchpoint_check): Remove extra reinit_frame_cache.
Skip over inlined functions. Simplify epilogue check.
(bpstat_check_breakpoint_conditions): Use get_stack_frame_id.
Update comments.
(set_momentary_breakpoint): Only accept non-inlined frames.
(watch_command_1): Use frame_unwind_caller_pc and
frame_unwind_caller_id instead of get_prev_frame.
(until_break_command): Likewise. Use get_stack_frame_id.
* buildsym.c (end_symtab): Set SYMBOL_SYMTAB for block functions.
* dwarf2loc.c (dwarf_expr_frame_base): Use block_linkage_function.
* dwarf2read.c (process_die): Handle DW_TAG_inlined_subroutine.
(read_func_scope, new_symbol): Likewise. Handle arguments specially
for inlined functions without call site information.
(inherit_abstract_dies): Allow tag mismatch for inlined subroutines.
(die_specification): Treat DW_AT_abstract_origin as a specification.
(read_type_die): Handle DW_TAG_inlined_subroutine.
* frame-unwind.c (frame_unwind_init): Add inline_frame_unwind.
* frame.c (fprint_frame_id): Print inline depth.
(fprint_frame_type): Handle INLINE_FRAME and SENTINEL_FRAME.
(skip_inlined_frames, get_stack_frame_id): New.
(frame_unwind_caller_id): Use skip_inlined_frames.
(frame_id_inlined_p): New.
(frame_id_eq): Make the logic match the comments. Add inline_depth
check.
(frame_id_inner): Handle inlined functions.
(frame_unwind_pc): New function, copied from frame_unwind_caller_pc.
(frame_unwind_caller_pc): Use skip_inlined_frames and frame_unwind_pc.
(get_prev_frame_1): Check for inline frames. Split out frame
allocation to get_prev_frame_raw.
(get_prev_frame_raw): New function.
(get_prev_frame): Handle inline frames.
(get_frame_pc): Use frame_unwind_pc.
(get_frame_address_in_block): Skip inlined frames on both sides.
(pc_notcurrent): Delete.
(find_frame_sal): Rewrite to handle inline call sites. Use
get_frame_address_in_block.
(deprecated_update_frame_pc_hack): Make static.
* frame.h: Update comments.
(struct frame_id): Add inline_depth.
(enum frame_type): Add INLINE_FRAME.
(frame_id_inlined_p, get_stack_frame_id): New prototypes.
* gdbthread.h (struct thread_info): Add step_stack_frame_id field.
* infcmd.c (set_step_frame): New function.
(step_once): Use set_step_frame. Handle inlined functions.
(until_next_command): Use set_step_frame.
(finish_backward), finish_forward): Use get_stack_frame_id.
(finish_command): Support inlined functions.
* inferior.h (set_step_info): New prototype.
* infrun.c (RESUME_ALL): Use minus_one_ptid.
(clear_proceed_status): Clear step_stack_frame_id.
(init_wait_for_inferior): Call clear_inline_frame_state.
(init_execution_control_state): Make static.
(set_step_info): New function.
(init_thread_stepping_state): Do not set the symtab or line here.
(stepped_in_from): New function.
(handle_inferior_event): Handle inlined functions. Use set_step_info.
(insert_step_resume_breakpoint_at_frame): Use get_stack_frame_id.
(struct inferior_status): Add step_stack_frame_id.
(save_inferior_status, restore_inferior_status): Save and restore
step_stack_frame_id.
* inline-frame.c, inline-frame.h: New files.
* minsyms.c (prim_record_minimal_symbol_and_info): Use XCALLOC.
* regcache.c (regcache_write_pc): Call reinit_frame_cache.
* s390-tdep.c (s390_prologue_frame_unwind_cache): Handle INLINE_FRAME.
* stack.c (frame_show_address): New.
(print_frame_info, print_frame): Use it.
(find_frame_funname): Use get_frame_function. Handle inlined blocks.
(frame_info): Mark inlined functions.
(backtrace_command_1): Use get_current_user_frame.
(print_frame_local_vars, print_frame_label_vars): Update comments.
(return_command): Refuse inlined functions.
* symtab.c (lookup_symbol_aux_local): Stop at inlined function
boundaries.
(find_function_start_sal): Avoid inlined functions.
(completion_list_add_fields): New function.
(default_make_symbol_completion_list): Use it. Use block_static_block
and block_global_block. Check for inlined functions.
(skip_prologue_using_sal): Avoid line number comparison across
inlining.
* symtab.h (struct symbol): Add is_inlined.
(SYMBOL_INLINED): New.
* target.c (target_resume): Call clear_inline_frame_state.
* valops.c (value_of_variable): Check block_inlined_p.
gdb/doc/
* gdb.texinfo (Debugging Optimized Code): New chapter.
(Compiling for Debugging): Reference it. Move some
text to the new section.
gdb/testsuite/
* gdb.base/break.exp: Add an XFAIL for gcc/36748.
* gdb.cp/annota2.exp: Accept frames-invalid in more places.
* gdb.opt/Makefile.in (EXECUTABLES): Update.
* gdb.opt/clobbered-registers-O2.exp: Update to GPL v3.
* gdb.opt/inline-bt.c, gdb.opt/inline-bt.exp,
gdb.opt/inline-cmds.c, gdb.opt/inline-cmds.exp,
gdb.opt/inline-locals.c, gdb.opt/inline-locals.exp,
gdb.opt/inline-markers.c: New files.
* lib/gdb.exp (skip_inline_frame_tests): New function.
(skip_inline_var_tests): New function.
* infcall.c (show_unwind_on_terminating_exception_p): New
function.
(call_function_by_hand): Create breakpoint and clean-up call for
std::terminate.breakpoint. Add unwind_on_terminating_exception_p
gate. Pop frame on breakpoint hit.
(_initialize_infcall): Add add_setshow_boolean_cmd for
unwind-on-terminating-exception.
testsuite/
2009-06-15 Phil Muldoon <pmuldoon@redhat.com>
* gdb.cp/gdb2495.cc: New file.
* gdb.cp/gdb2495.exp: New file.
doc/
2009-06-15 Phil Muldoon <pmuldoon@redhat.com>
* doc/gdb.texinfo (Calling): Document
set-unwind-on-terminating-exception usage.
* infrun.c (sched_multi): New global.
(resume): If sched_multi is set, resume only threads of the
current inferior.
(prepare_to_proceed): Don't switch over to wait_ptid if we're
resuming a different inferior, and sched_multi is off.
(show_schedule_multiple): New.
(_initialize_infrun): Register new "set schedule-multiple" command.
* inferior.h (sched_multi): Declare.
* NEWS: Mention new "schedule-multiple" setting.
gdb/doc/
* gdb.texinfo (All-Stop): Document new 'set schedule-multiple'
command.
* NEWS: Mention set/show libthread-db-search-path.
* gdb_thread_db.h (LIBTHREAD_DB_SEARCH_PATH): New define.
(LIBTHREAD_DB_SO): Moved from linux-thread-db.c
* linux-thread-db.c (libthread_db_search_path): New setting.
(thread_db_handle): New variable (replaces using_thread_db).
(try_thread_db_load_1): New function.
(try_thread_db_load, thread_db_load_search): Likewise.
(dladdr_to_soname): Likewise.
(thread_db_load): Iterate over possibly multiple libthread_db's.
(check_for_thread_db): Attempt to load new libthread_db.
(thread_db_detach, thread_db_wait): Unload libthread_db.
(thread_db_mourn_inferior): Likewise.
(_initialize_thread_db): Add new libthread-db-search-path option.
Defer loading of libthread_db to check_for_thread_db.
* solib.c (libpthread_name_p): New function.
(libpthread_solib_p): Call it.
* solib.h (libpthread_name_p): New prototype.
2009-05-12 Pedro Alves <pedro@codesourcery.com>
* cli/cli-decode.c (deprecated_add_set_cmd): Delete.
* command.h (deprecated_add_set_cmd): Delete declaration.
* gnu-nat.c (_initialize_gnu_nat): Replace 'maint gnu-debug' with
'set debug gnu-nat' and 'show debug gnu-nat'.
* i386-nat.c (_initialize_i386_nat): Replace 'maint
show-debug-registers' with 'maint set show-debug-registers' and
'maint show show-debug-registers'.
* mips-linux-nat.c (_initialize_mips_linux_nat): Replace 'maint
show-debug-registers' with 'maint set show-debug-registers' and
'maint show show-debug-registers'.
gdb/doc/
2009-05-12 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo: Document 'set/show debug gnu-nat'. Replace 'maint
show-debug-regs' docs by 'maint set show-debug-regs' and 'maint
show show-debug-regs' docs.
* macrocmd.c (info_macro_command): Print -Dname=value if LINE is zero.
gdb/doc/
* gdb.texinfo (Macros): Note command-line for `info macro'. Append
a new part on command-line defined macros.
gdb/testsuite/
* gdb.base/macscp.exp: New `options' parameter `-DFROM_COMMANDLINE'.
(info_macro): Remova `decimal' declaration. New variable `nonzero'.
Replace all uses of `decimal' by `nonzero'.
(info macro FROM_COMMANDLINE): New test.
* configure.ac (--with-datarootdir, --with-docdir, --with-pdfdir,
--with-htmldir): New.
* configure: Regenerate.
gdb/doc:
* configure.ac (--with-datarootdir, --with-docdir, --with-pdfdir,
--with-htmldir): New.
* configure: Regenerate.
* Makefile.in (datarootdir, docdir): Define.
(gdb.dvi, gdb.pdf): Use same -I options as for building gdb.info
instead of $(SET_TEXINPUTS).
(gdbint.dvi, gdbint.pdf): Use same -I options as for building
gdbint.info instead of $(SET_TEXINPUTS).
(gdbint/index.html): Use same -I options as for building
gdbint.info.
(stabs.dvi, stabs.pdf): Use same -I options as for building
stabs.info instead of $(SET_TEXINPUTS).
(stabs/index.html): Use same -I options as for building
stabs.info.
(annotate.dvi, annotate.pdf): Use same -I options as for building
annotate.info instead of $(SET_TEXINPUTS).
(annotate/index.html): Use same -I options as for building
annotate.info.
2009-04-18 Carlos O'Donell <carlos@codesourcery.com>
* Makefile.in (MAKEHTML): Set to makeinfo --html.
(MAKEHTMLFLAGS): Set to empty.
gdb/doc:
2009-04-18 Carlos O'Donell <carlos@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* Makefile.in (MAKEHTML): Set to makeinfo --html.
(MAKEHTMLFLAGS): Set to empty.
(html__strip_dir): Define.
(HTMLFILES): Define.
(HTMLFILES_INSTALL): Define.
(install-html): Copy new automake rule.
(html): Depend on $(HTMLFILES).
(gdb_toc.html): Rename to gdb/index.html.
(gdbint_toc.html): Rename to gdbint/index.html.
(stabs_toc.html): Rename to stabs/index.html.
(annotate_toc.html): Rename to annotate/index.html.
example, and add a small explanation about it.
(Print Settings): Change the documentation of the "set print
frame-arguments" to reflect the fact that the default is now "scalars".
Change gdb.Value.address from a method to an attribute.
* python/python-value.c (value_object): Add `address' element.
(valpy_dealloc): Decrement reference to self->address if set.
(valpy_new): Initialize val_obj->address.
(valpy_address): Rename to ...
(valpy_get_address): ... this. Change signature from method to
attribute. Update self->address if not set.
(value_to_value_object): Initialize val_obj->address.
(value_object_getset): Add `address' element.
(value_object_methods): Remove `address' element.
gdb/testsuite/
* gdb.python/python-value.exp: Add tests for the address
attribute.
gdb/doc/
* gdb.texinfo (Values From Inferior): Change gdb.Value.address
from a method to an attribute.
* mi/mi-interp.c (mi_interpreter_init): Attach mi_about_to_proceed
to the about_to_proceed observer notification.
(mi_about_to_proceed): New.
(mi_on_resume): Only output ^running and the prompt here if the
target was proceeded.
* breakpoint.c (breakpoint_proceeded): New static.
(breakpoint_about_to_proceed): New.
(_initialize_breakpoints): Attach breakpoint_about_to_proceed to
the about_to_proceed observer notification.
* inferior.h (breakpoint_proceeded): Delete declaration.
* infrun.c (clear_proceed_status): Don't set breakpoint_proceeded.
Notify the about_to_proceed observers.
(struct inferior_status): Delete breakpoint_proceeded member.
(save_inferior_status): Don't save it.
(restore_inferior_status): Don't restore it.
* mi-main.h (mi_proceeded): Declare.
* mi/mi-main.c (mi_cmd_execute): Clear mi_proceeded before running
a command.
gdb/doc/
* observer.texi (about_to_proceed): New.
* gdbint.texinfo (everywhere): Use braces {} in @deftypeXX type
field throughout to handle types with spaces in them. Fix typos
found by aspell.
(Summary, Requirements, Contributors): New first chapter,
"Summary" added, old Requirements section moved there, and new
section, "Contributors" added.
(Initializing a New Architecture, Register Representation)
(Frame Interpretation, Inferior Call Setup, Adding a New Target)
(Porting gdb): These sections extended and updated.
(Compiler Characteristics): This section (empty) deleted.
(Defining Other Architecture Features): This section renamed and
duplicate material removed from (formerly "Target Conditionals").
Use braces {} in @deftypeXX type field throughout to handle types
with spaces in them. Typos found by aspell fixed.
* stack_frame.svg: New file, source of image for gdbint.texinfo.
* stack_frame.pdf: Version of image for PDF output.
* stack_frame.png: Version of image for HTML output and for Emacs.
* stack_frame.txt: Version of image for Info output.
2009-03-21 Jan Kratochvil <jan.kratochvil@redhat.com>
Jim Blandy <jimb@red-bean.com>
Thiago Jung Bauermann <bauerman@br.ibm.com>
Tom Tromey <tromey@redhat.com>
Miscellaneous fixes to the Python code.
* python/python-cmd.c (cmdpy_init): Accept keyword
arguments.
* python/python-value.c (valpy_string): Accept keyword
arguments.
(valpy_binop): Use `break' to exit from the TRY_CATCH block.
Do not call value_to_value_object on NULL RES_VAL.
(value_object_methods): Change `string' entry to also accept
keyword arguments.
(convert_value_from_python): Return a copy of the value if obj is
a gdb.Value object.
(value_object_methods): Mark the `string' method as accepting
keywords, and show method "prototype" in the doc string.
* python/python.c (get_parameter): Don't return inside a
TRY_CATCH.
gdb/doc/
2009-03-21 Thiago Jung Bauermann <bauerman@br.ibm.com>
* gdb.texinfo (Values From Inferior): Fix optional arguments
markup.
(Commands In Python): Adjust argument names of gdb.Command.__init__
to what the function accepts as keywords.
gdb/testsuite/
2009-03-21 Thiago Jung Bauermann <bauerman@br.ibm.com>
* gdb.python/python-cmd.exp: Add tests for keyword arguments.
* gdb.python/python-function.exp: Add test for function returning
a GDB value.