binutils-gdb/gdb/python
Philippe Waroquiers 4b5e8d19af Implement 'set print frame-info|frame-arguments presence'.
New settings allow to better control what frame information is printed.

'set print frame-info' allows to override the default frame information
printed when a GDB command prints a frame.
The backtrace command has a new option -frame-info to override
this global setting.

It is now possible to have very short frame information by using the
new 'set print frame-arguments presence' and
'set print frame-info short-location'.

Combined with 'set print address off', a backtrace will only show
the essential information to see the function call chain, e.g.:
  (gdb) set print address off
  (gdb) set print frame-arguments presence
  (gdb) set print frame-info short-location
  (gdb) bt
  #0  break_me ()
  #1  call_me (...)
  #2  main ()
  (gdb)

This is handy in particular for big backtraces with functions having
many arguments.

Python frame filter printing logic has been updated to respect the new
setting in non MI mode.

Also, the default frame information printed was inconsistent when
backtrace was printing the frame information itself, or when the python
frame filtering code was printing the frame information.
This patch changes the default of python frame filtering to have a
consistent behaviour regarding printed frame-information, whatever
the presence/activity/matches of python filters.

2019-07-29  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* frame.h (enum print_what): New value 'SHORT_LOCATION', update
	comments.
	(print_frame_info_auto, print_frame_info_source_line,
	print_frame_info_location, print_frame_info_source_and_location,
	print_frame_info_location_and_address, print_frame_info_short_location):
	New declarations.
	(struct frame_print_options): New member print_frame_info.
	* extension.h (enum ext_lang_frame_args): New value CLI_PRESENCE.
	* stack.h (get_user_print_what_frame_info): New declaration.
	(frame_show_address): New declaration.
	* stack.c (print_frame_arguments_choices): New value 'presence'.
	(print_frame_info_auto, print_frame_info_source_line,
	print_frame_info_location, print_frame_info_source_and_location,
	print_frame_info_location_and_address, print_frame_info_short_location,
	print_frame_info_choices, print_frame_info_print_what): New definitions.
	(print_frame_args): Only print dots for args if print frame-arguments
	is 'presence'.
	(frame_print_option_defs): New element for "frame-info".
	(get_user_print_what_frame_info): New function.
	(frame_show_address): Make non static.  Move comment to stack.h.
	(print_frame_info_to_print_what): New function.
	(print_frame_info): Update comment.  Use fp_opts.print_frame_info
	to decide what to print.
	(backtrace_command_1): Handle the new print_frame_arguments_presence
	value.
	(_initialize_stack): Call add_setshow_enum_cmd for frame-info.
	* python/py-framefilter.c (py_print_args): Handle CLI_PRESENCE.
	(py_print_frame): In non-mi mode, use LOCATION as default for
	print_what, similarly to frame information printed directly by
	backtrace command. Handle frame-info user option in non MI mode.
2019-07-29 21:42:29 +02:00
..
lib/gdb Fix incorrect use of 'is' operator for comparison in python/lib/gdb/command/prompt.py 2019-05-04 15:52:20 -04:00
py-all-events.def
py-arch.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-auto-load.c
py-block.c Remove duplicate or commented-out #includes 2019-01-21 11:14:07 -07:00
py-bpevent.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-breakpoint.c "catch catch/throw/rethrow", breakpoint -> catchpoint 2019-07-09 19:34:18 +01:00
py-cmd.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-continueevent.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-event-types.def
py-event.c
py-event.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-events.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-evtregistry.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-evts.c
py-exitedevent.c
py-finishbreakpoint.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-frame.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-framefilter.c Implement 'set print frame-info|frame-arguments presence'. 2019-07-29 21:42:29 +02:00
py-function.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-gdb-readline.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-inferior.c Fix use-after-move bug in add_thread_object 2019-07-11 09:15:18 -06:00
py-infevents.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-infthread.c Reduce manual reference counting in py-inferior.c 2019-07-10 12:24:22 -06:00
py-instruction.c
py-instruction.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-lazy-string.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-linetable.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-newobjfileevent.c
py-objfile.c Fix comment about the signature of add_separate_debug_file 2019-07-25 17:17:49 -05:00
py-param.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-prettyprint.c gdb: Introduce 'print max-depth' feature 2019-04-29 22:01:09 +01:00
py-progspace.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-record-btrace.c Don't include gdbarch.h from defs.h 2019-07-10 14:53:53 -06:00
py-record-btrace.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-record-full.c
py-record-full.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-record.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-record.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-ref.h Rename common to gdbsupport 2019-07-09 07:45:38 -06:00
py-signalevent.c
py-stopevent.c
py-stopevent.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
py-symbol.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-symtab.c More block constification 2019-03-24 23:32:08 -06:00
py-threadevent.c
py-type.c Rename common to gdbsupport 2019-07-09 07:45:38 -06:00
py-unwind.c Rename gdb exception types 2019-04-08 09:05:40 -06:00
py-utils.c Make exception handling more efficient 2019-04-25 12:59:35 -06:00
py-value.c gdb: Introduce 'print max-depth' feature 2019-04-29 22:01:09 +01:00
py-varobj.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
py-xmethods.c Do not include py-ref.h in most files 2019-01-22 20:35:21 -07:00
python-config.py
python-internal.h Reduce manual reference counting in py-inferior.c 2019-07-10 12:24:22 -06:00
python.c Rename common to gdbsupport 2019-07-09 07:45:38 -06:00
python.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00