public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: "Aktemur, Tankut Baris" <tankut.baris.aktemur@intel.com>
To: Andrew Burgess <aburgess@redhat.com>,
	"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: RE: [PATCHv2 12/13] gdb: introduce unwind-on-timeout setting
Date: Fri, 20 Jan 2023 09:26:20 +0000	[thread overview]
Message-ID: <DM4PR11MB730375B56A5FF26F0567F666C4C59@DM4PR11MB7303.namprd11.prod.outlook.com> (raw)
In-Reply-To: <0a8172f909c477fc7bab48c99df5860c887b8024.1674058360.git.aburgess@redhat.com>

On Wednesday, January 18, 2023 5:18 PM, Andrew Burgess wrote:
> Now that inferior function calls can timeout (see the recent
> introduction of direct-call-timeout and indirect-call-timeout), this
> commit adds a new setting unwind-on-timeout.
> 
> This new setting is just like the existing unwindonsignal and
> unwind-on-terminating-exception, but the new setting will cause GDB to
> unwind the stack if an inferior function call times out.
> 
> The existing inferior function call timeout tests have been updated to
> cover the new setting.
> ---
>  gdb/NEWS                                      |  9 +++
>  gdb/doc/gdb.texinfo                           | 33 +++++++---
>  gdb/infcall.c                                 | 62 ++++++++++++++++---
>  gdb/testsuite/gdb.base/infcall-timeout.exp    | 49 +++++++++++----
>  .../infcall-from-bp-cond-timeout.exp          | 55 +++++++++++-----
>  5 files changed, 164 insertions(+), 44 deletions(-)
> 
> diff --git a/gdb/NEWS b/gdb/NEWS
> index 2689569a8f3..511a750407a 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -35,6 +35,15 @@ show indirect-call-timeout
>    ignored, GDB will wait indefinitely for an inferior function to
>    complete, unless interrupted by the user using Ctrl-C.
> 
> +set unwind-on-timeout on|off
> +show unwind-on-timeout
> +  These commands control whether GDB should unwind the stack when a
> +  timeout occurs during an inferior function call.  The default is
> +  off, in which case the inferior will remain in the frame where the
> +  timeout occurred.  When on GDB will unwind the stack remocing the
> +  dummy frame that was added for the inferior call, and restoring the
> +  inferior state to how it was before the inferior call started.
> +
>  * MI changes
> 
>  ** mi now reports 'no-history' as a stop reason when hitting the end of the
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 9eb8b1db00e..aa88221677e 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -5719,10 +5719,10 @@
>  the called function, or the called function may receive a signal
>  (e.g.@ a @code{SIGSEGV}) as a result of some undefined behaviour, if
>  this happens then @value{GDBN} will stop.  Depending on the settings
> -@code{unwindonsignal} and @code{unwind-on-terminating-exception}
> -(@pxref{Calling,,Calling Program Functions}) @value{GDBN} may unwind
> -the stack back to the breakpoint location, or may leave the program at
> -the frame where the stop occurred.
> +@code{unwindonsignal}, @code{unwind-on-terminating-exception}, and
> +@code{unwind-on-timeout} (@pxref{Calling,,Calling Program Functions})
> +@value{GDBN} may unwind the stack back to the breakpoint location, or
> +may leave the program at the frame where the stop occurred.
> 
>  Breakpoint conditions can also be evaluated on the target's side if
>  the target supports it.  Instead of evaluating the conditions locally,
> @@ -20718,6 +20718,21 @@
>  Show the current setting of stack unwinding in the functions called by
>  @value{GDBN}.
> 
> +@item set unwind-on-timeout
> +@kindex set unwind-on-timeout
> +@cindex unwind stack in called functions when timing out
> +@cindex call dummy stack unwinding on timeout.
> +Set unwinding of the stack if a function called from @value{GDBN}
> +times out.  If set to @code{off} (the default), @value{GDBN} stops in
> +the frame where the timeout occurred.  If set to @code{on},
> +@value{GDBN} unwinds the stack it created for the call and restores
> +the context to what it was before the call.
> +
> +@item show unwind-on-timeout
> +@kindex show unwind-on-timeout
> +Show whether @value{GDBN} will unwind the stack if a function called
> +from @value{GDBN} times out.
> +
>  @item set may-call-functions
>  @kindex set may-call-functions
>  @cindex disabling calling functions in the program
> @@ -20748,11 +20763,11 @@
>  call by typing the interrupt character (often @kbd{Ctrl-c}).
> 
>  If a called function is interrupted for any reason, and the stack is
> -not unwound (due to @code{set unwind-on-terminating-exception on} or
> -@code{set unwindonsignal on}), then the dummy-frame, created by
> -@value{GDBN} to facilitate the call to the program function, will be
> -visible in the backtrace, for example frame @code{#3} in the following
> -backtrace:
> +not unwound (due to @code{set unwind-on-terminating-exception on},
> +@code{set unwind-on-timeout}, or @code{set unwindonsignal on}), then
> +the dummy-frame, created by @value{GDBN} to facilitate the call to the
> +program function, will be visible in the backtrace, for example frame
> +@code{#3} in the following backtrace:
> 
>  @smallexample
>  (@value{GDBP}) backtrace
> diff --git a/gdb/infcall.c b/gdb/infcall.c
> index 9afca4f5bc6..272e3cccf87 100644
> --- a/gdb/infcall.c
> +++ b/gdb/infcall.c
> @@ -217,6 +217,27 @@ show_unwind_on_terminating_exception_p (struct ui_file *file, int
> from_tty,
>  	      value);
>  }
> 
> +/* This boolean tells what gdb should do if a signal is received while
> +   in a function called from gdb (call dummy).  If set, gdb unwinds

In a former review comment, I was asked to use "GDB" (all uppercase)
as the spelling.

> +   the stack and restore the context to what as it was before the

restore -> restores
And "as" should be removed.

> +   call.
> +
> +   The default is to stop in the frame where the signal was received.  */
> +
> +static bool unwind_on_timeout_p = false;
> +
> +/* Implement 'show unwind-on-timeout'.  */
> +
> +static void
> +show_unwind_on_timeout_p (struct ui_file *file, int from_tty,
> +			  struct cmd_list_element *c, const char *value)
> +{
> +  gdb_printf (file,
> +	      _("Unwinding of stack if a timeout occurs "
> +		"while in a call dummy is %s.\n"),
> +	      value);
> +}
> +
>  /* Perform the standard coercions that are specified
>     for arguments to be passed to C, Ada or Fortran functions.
> 
> @@ -1691,14 +1712,27 @@ When the function is done executing, GDB will silently stop."),
>  	  /* A timeout results in a signal being sent to the inferior.  */
>  	  gdb_assert (stopped_by_random_signal);
> 
> -	  /* Indentation is weird here.  A later patch is going to move the
> -	    following block into an if/else, so I'm leaving the indentation
> -	    here to minimise the later patch.
> +	  if (unwind_on_timeout_p)
> +	    {
> +	      /* The user wants the context restored.  */
> +
> +	      /* We must get back to the frame we were before the
> +		 dummy call.  */
> +	      dummy_frame_pop (dummy_id, call_thread.get ());
> +
> +	      /* We also need to restore inferior status to that before the
> +		 dummy call.  */
> +	      restore_infcall_control_state (inf_status.release ());
> 
> -	    Also, the error message used below refers to 'set
> -	    unwind-on-timeout' which doesn't exist yet.  This will be added
> -	    in a later commit, I'm leaving this in for now to minimise the
> -	    churn caused by the commit that adds unwind-on-timeout.  */
> +	      error (_("\
> +The program being debugged timed out while in a function called from GDB.\n\
> +GDB has restored the context to what it was before the call.\n\
> +To change this behavior use \"set unwind-on-timeout off\".\n\
> +Evaluation of the expression containing the function\n\
> +(%s) will be abandoned."),
> +		     name.c_str ());
> +	    }
> +	  else
>  	    {
>  	      /* The user wants to stay in the frame where we stopped
>  		 (default).  Discard inferior status, we're not at the same
> @@ -1824,6 +1858,20 @@ The default is to unwind the frame."),
>  			   show_unwind_on_terminating_exception_p,
>  			   &setlist, &showlist);
> 
> +  add_setshow_boolean_cmd ("unwind-on-timeout", no_class,
> +			   &unwind_on_timeout_p, _("\
> +Set unwinding of stack if a timeout occurs while in a call dummy."), _("\
> +Show unwinding of stack if a timeout occurs while in a call dummy."),
> +			   _("\
> +The unwind on timeout flag lets the user determine what gdb should do if\n\
> +gdb times out while in a function called from gdb.  If set, gdb unwinds\n\
> +the stack and restores the context to what it was before the call.  If\n\
> +unset, gdb leaves the inferior in the frame where the timeout occurred.\n\
> +The default is to stop in the frame where the timeout occurred."),
> +			   NULL,
> +			   show_unwind_on_timeout_p,
> +			   &setlist, &showlist);
> +
>    add_setshow_uinteger_cmd ("direct-call-timeout", no_class,
>  			    &direct_call_timeout, _("\
>  Set the timeout, for direct calls to inferior function calls."), _("\
> diff --git a/gdb/testsuite/gdb.base/infcall-timeout.exp b/gdb/testsuite/gdb.base/infcall-
> timeout.exp
> index bd6b2bfac3e..a4d9fd6ee61 100644
> --- a/gdb/testsuite/gdb.base/infcall-timeout.exp
> +++ b/gdb/testsuite/gdb.base/infcall-timeout.exp
> @@ -28,7 +28,11 @@ if { [build_executable "failed to prepare" ${binfile} "${srcfile}" \
>  # the direct-call-timeout, and make an inferior function call that
>  # will never return.  GDB should eventually timeout and stop the
>  # inferior.
> -proc_with_prefix run_test { target_async target_non_stop } {
> +#
> +# When UNWIND is "off" the inferior wil be left in the frame where the
> +# timeout occurs, otherwise, when UNWIND is "on", GDB should unwind
> +# back to the frame where the inferior call was made.
> +proc_with_prefix run_test { target_async target_non_stop unwind } {
>      save_vars { ::GDBFLAGS } {
>  	append ::GDBFLAGS \
>  	    " -ex \"maint set target-non-stop $target_non_stop\""
> @@ -44,19 +48,36 @@ proc_with_prefix run_test { target_async target_non_stop } {
>      }
> 
>      gdb_test_no_output "set direct-call-timeout 5"
> +    gdb_test_no_output "set unwind-on-timeout $unwind"
> +
> +    if { $unwind } {
> +	gdb_test "print function_that_never_returns ()" \
> +	    [multi_line \
> +		 "Program stopped\\." \
> +		 ".*" \
> +		 "The program being debugged timed out while in a function called from GDB\\."
> \
> +		 "GDB has restored the context to what it was before the call\\." \
> +		 "To change this behavior use \"set unwind-on-timeout off\"\\." \
> +		 "Evaluation of the expression containing the function" \
> +		 "\\(function_that_never_returns\\) will be abandoned\\."]
> 
> -    gdb_test "print function_that_never_returns ()" \
> -	[multi_line \
> -	     "Program stopped\\." \
> -	     ".*" \
> -	     "The program being debugged timed out while in a function called from GDB\\." \
> -	     "GDB remains in the frame where the timeout occurred\\." \
> -	     "To change this behavior use \"set unwind-on-timeout on\"\\." \
> -	     "Evaluation of the expression containing the function" \
> -	     "\\(function_that_never_returns\\) will be abandoned\\." \
> -	     "When the function is done executing, GDB will silently stop\\."]
> +	gdb_test "bt" \
> +	    "#0\\s+main \\(\\).*"
> +    } else {
> +	gdb_test "print function_that_never_returns ()" \
> +	    [multi_line \
> +		 "Program stopped\\." \
> +		 ".*" \
> +		 "The program being debugged timed out while in a function called from GDB\\."
> \
> +		 "GDB remains in the frame where the timeout occurred\\." \
> +		 "To change this behavior use \"set unwind-on-timeout on\"\\." \
> +		 "Evaluation of the expression containing the function" \
> +		 "\\(function_that_never_returns\\) will be abandoned\\." \
> +		 "When the function is done executing, GDB will silently stop\\."]
> 
> -    gdb_test "bt" ".* function_that_never_returns .*<function called from gdb>.*"
> +	gdb_test "bt" \
> +	    ".* function_that_never_returns .*<function called from gdb>.*"
> +    }
>  }
> 
>  foreach_with_prefix target_async { "on" "off" } {
> @@ -70,6 +91,8 @@ foreach_with_prefix target_async { "on" "off" } {
>      }
> 
>      foreach_with_prefix target_non_stop { "on" "off" } {
> -	run_test $target_async $target_non_stop
> +	foreach_with_prefix unwind { "on" "off" } {
> +	    run_test $target_async $target_non_stop $unwind
> +	}
>      }
>  }
> diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
> b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
> index 9ba38e6896a..847a850673d 100644
> --- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
> +++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
> @@ -41,7 +41,12 @@ set segfault_line [gdb_get_line_number "Segfault here"]
>  # thread, on which the inferior call relies, either hits a breakpoint
>  # (when OTHER_THREAD_BP is true), or crashes (when OTHER_THREAD_BP is
>  # false).
> -proc run_test { target_async target_non_stop other_thread_bp } {
> +#
> +# When UNWIND is "on" GDB will unwind the thread which performed the
> +# inferior function call back to the state where the inferior call was
> +# made (when the inferior call times out).  Otherwise, when UNWIND is
> +# "off", the inferior is left in the frame where the timeout occurred.
> +proc run_test { target_async target_non_stop other_thread_bp unwind } {
>      save_vars { ::GDBFLAGS } {
>  	append ::GDBFLAGS " -ex \"maint set target-non-stop $target_non_stop\""
>  	append ::GDBFLAGS " -ex \"maintenance set target-async ${target_async}\""
> @@ -72,6 +77,7 @@ proc run_test { target_async target_non_stop other_thread_bp } {
>      # for this timeout.  For now though, we just hope 5 seconds is
>      # enough.
>      gdb_test_no_output "set indirect-call-timeout 5"
> +    gdb_test_no_output "set unwind-on-timeout $unwind"
> 
>      gdb_breakpoint \
>  	"${::srcfile}:${::cond_bp_line} if (condition_func ())"
> @@ -92,18 +98,35 @@ proc run_test { target_async target_non_stop other_thread_bp } {
>  				 "get number for segfault breakpoint"]
>      }
> 
> -    gdb_test "continue" \
> -	[multi_line \
> -	     "Thread ${::decimal} \"\[^\r\n\"\]+\" stopped\\." \
> -	     ".*" \
> -	     "Error in testing condition for breakpoint ${bp_num}:" \
> -	     "The program being debugged timed out while in a function called from GDB\\." \
> -	     "GDB remains in the frame where the timeout occurred\\." \
> -	     "To change this behavior use \"set unwind-on-timeout on\"\\." \
> -	     "Evaluation of the expression containing the function" \
> -	     "\\(condition_func\\) will be abandoned\\." \
> -	     "When the function is done executing, GDB will silently stop\\."] \
> -	"expected timeout waiting for inferior call to complete"
> +    if { $unwind } {
> +	gdb_test "continue" \
> +	    [multi_line \
> +		 "Thread ${::decimal} \"\[^\r\n\"\]+\" stopped\\." \
> +		 ".*" \
> +		 "Error in testing condition for breakpoint ${bp_num}:" \
> +		 "The program being debugged timed out while in a function called from GDB\\."
> \
> +		 "GDB has restored the context to what it was before the call\\." \
> +		 "To change this behavior use \"set unwind-on-timeout off\"\\." \
> +		 "Evaluation of the expression containing the function" \
> +		 "\\(condition_func\\) will be abandoned\\." \
> +		 "" \
> +		 "Thread ${::decimal}\[^\r\n\]*hit Breakpoint ${bp_num}, \[^\r\n\]+" \
> +		 "\[^\r\n\]+ Conditional breakpoint here\\. \[^\r\n\]+"] \
> +	    "expected timeout waiting for inferior call to complete"
> +    } else {
> +	gdb_test "continue" \
> +	    [multi_line \
> +		 "Thread ${::decimal} \"\[^\r\n\"\]+\" stopped\\." \
> +		 ".*" \
> +		 "Error in testing condition for breakpoint ${bp_num}:" \
> +		 "The program being debugged timed out while in a function called from GDB\\."
> \
> +		 "GDB remains in the frame where the timeout occurred\\." \
> +		 "To change this behavior use \"set unwind-on-timeout on\"\\." \
> +		 "Evaluation of the expression containing the function" \
> +		 "\\(condition_func\\) will be abandoned\\." \
> +		 "When the function is done executing, GDB will silently stop\\."] \
> +	    "expected timeout waiting for inferior call to complete"
> +    }
> 
>      # Remember that other thread that either crashed (with a segfault)
>      # or hit a breakpoint?  Now that the inferior call has timed out,
> @@ -142,8 +165,10 @@ foreach_with_prefix target_async {"on" "off" } {
>      }
> 
>      foreach_with_prefix target_non_stop {"off" "on"} {
> -	foreach_with_prefix other_thread_bp { true false } {
> -	    run_test $target_async $target_non_stop $other_thread_bp
> +	foreach_with_prefix unwind {"off" "on"} {
> +	    foreach_with_prefix other_thread_bp { true false } {
> +		run_test $target_async $target_non_stop $other_thread_bp $unwind
> +	    }
>  	}
>      }
>  }
> --
> 2.25.4

Regards
-Baris


Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


  parent reply	other threads:[~2023-01-20  9:26 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-21  8:43 [PATCH 00/12] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2022-10-21  8:43 ` [PATCH 01/12] gdb: int to bool conversion for normal_stop Andrew Burgess
2022-11-04 12:20   ` Lancelot SIX
2023-01-13 16:35     ` Andrew Burgess
2022-10-21  8:43 ` [PATCH 02/12] gdb/infrun: add debug print in print_signal_received_reason Andrew Burgess
2023-01-13 16:38   ` Andrew Burgess
2022-10-21  8:43 ` [PATCH 03/12] gdb: include breakpoint number in testing condition error message Andrew Burgess
2022-10-21  8:43 ` [PATCH 04/12] gdbserver: add comments to read_inferior_memory function Andrew Burgess
2023-01-13 16:42   ` Andrew Burgess
2022-10-21  8:43 ` [PATCH 05/12] gdbserver: allows agent_mem_read to return an error code Andrew Burgess
2022-10-21  8:43 ` [PATCH 06/12] gdbserver: allow agent expressions to fail with invalid memory access Andrew Burgess
2022-10-21  8:43 ` [PATCH 07/12] gdb: avoid repeated signal reporting during failed conditional breakpoint Andrew Burgess
2022-10-21  8:43 ` [PATCH 08/12] gdb: don't always print breakpoint location after failed condition check Andrew Burgess
2022-10-21  8:43 ` [PATCH 09/12] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2022-10-21  8:43 ` [PATCH 10/12] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2022-10-21  8:43 ` [PATCH 11/12] gdb: add timeouts for inferior function calls Andrew Burgess
2022-10-21 11:08   ` Eli Zaretskii
2023-01-14 11:00     ` Andrew Burgess
2023-01-14 11:48       ` Eli Zaretskii
2023-01-16 17:22         ` Andrew Burgess
2023-01-16 17:27           ` Eli Zaretskii
2022-11-04 23:17   ` Lancelot SIX
2023-01-13 16:49     ` Andrew Burgess
2023-01-16  9:44       ` Lancelot SIX
2022-10-21  8:43 ` [PATCH 12/12] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-01-18 16:17 ` [PATCHv2 00/13] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-01-18 16:17   ` [PATCHv2 01/13] gdb/doc: extended documentation for inferior function calls Andrew Burgess
2023-01-18 17:20     ` Eli Zaretskii
2023-03-16 17:15       ` Andrew Burgess
2023-01-19  9:00     ` Aktemur, Tankut Baris
2023-01-18 16:17   ` [PATCHv2 02/13] gdb/doc: extend the documentation for conditional breakpoints Andrew Burgess
2023-01-18 17:22     ` Eli Zaretskii
2023-01-19  9:04     ` Aktemur, Tankut Baris
2023-01-19 10:07       ` Eli Zaretskii
2023-01-18 16:17   ` [PATCHv2 03/13] gdb: include breakpoint number in testing condition error message Andrew Burgess
2023-01-19  9:54     ` Aktemur, Tankut Baris
2023-01-19 10:54     ` Aktemur, Tankut Baris
2023-01-19 11:34       ` Eli Zaretskii
2023-01-20  9:46         ` Aktemur, Tankut Baris
2023-01-25 16:49           ` Andrew Burgess
2023-01-25 17:09             ` Eli Zaretskii
2023-01-18 16:18   ` [PATCHv2 04/13] gdbserver: allows agent_mem_read to return an error code Andrew Burgess
2023-01-19  9:59     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 05/13] gdbserver: allow agent expressions to fail with invalid memory access Andrew Burgess
2023-01-19 10:13     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 06/13] gdb: avoid repeated signal reporting during failed conditional breakpoint Andrew Burgess
2023-01-19 10:33     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 07/13] gdb: don't always print breakpoint location after failed condition check Andrew Burgess
2023-01-19 10:49     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 08/13] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-01-19 11:05     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 09/13] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-01-20  7:13     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 10/13] gdb: add timeouts for inferior function calls Andrew Burgess
2023-01-18 17:30     ` Eli Zaretskii
2023-01-20  8:50     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 11/13] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-01-20  9:14     ` Aktemur, Tankut Baris
2023-01-18 16:18   ` [PATCHv2 12/13] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-01-18 17:33     ` Eli Zaretskii
2023-01-20  9:26     ` Aktemur, Tankut Baris [this message]
2023-01-18 16:18   ` [PATCHv2 13/13] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-01-18 17:35     ` Eli Zaretskii
2023-01-20  9:34   ` [PATCHv2 00/13] Infcalls from B/P conditions in multi-threaded inferiors Aktemur, Tankut Baris
2023-01-25 15:53     ` Andrew Burgess
2023-02-16 11:09       ` Aktemur, Tankut Baris
2023-01-31 17:27   ` [PATCHv3 " Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 01/13] gdb/doc: extended documentation for inferior function calls Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 02/13] gdb/doc: extend the documentation for conditional breakpoints Andrew Burgess
2023-01-31 18:07       ` Eli Zaretskii
2023-02-01 17:47         ` Andrew Burgess
2023-02-01 18:25           ` Eli Zaretskii
2023-02-02 13:34             ` Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 03/13] gdb: include breakpoint number in testing condition error message Andrew Burgess
2023-02-16 10:15       ` Aktemur, Tankut Baris
2023-01-31 17:27     ` [PATCHv3 04/13] gdbserver: allows agent_mem_read to return an error code Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 05/13] gdbserver: allow agent expressions to fail with invalid memory access Andrew Burgess
2023-02-16 10:29       ` Aktemur, Tankut Baris
2023-01-31 17:27     ` [PATCHv3 06/13] gdb: avoid repeated signal reporting during failed conditional breakpoint Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 07/13] gdb: don't always print breakpoint location after failed condition check Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 08/13] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 09/13] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-02-16 10:47       ` Aktemur, Tankut Baris
2023-01-31 17:27     ` [PATCHv3 10/13] gdb: add timeouts for inferior function calls Andrew Burgess
2023-01-31 18:11       ` Eli Zaretskii
2023-02-01 17:50         ` Andrew Burgess
2023-02-01 18:29           ` Eli Zaretskii
2023-02-16 10:53       ` Aktemur, Tankut Baris
2023-01-31 17:27     ` [PATCHv3 11/13] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-01-31 17:27     ` [PATCHv3 12/13] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-01-31 18:09       ` Eli Zaretskii
2023-02-16 11:01       ` Aktemur, Tankut Baris
2023-01-31 17:27     ` [PATCHv3 13/13] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-01-31 18:12       ` Eli Zaretskii
2023-02-28 16:42     ` [PATCHv4 00/12] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 01/12] gdb/doc: extended documentation for inferior function calls Andrew Burgess
2024-03-21  9:03         ` Tom de Vries
2024-03-21  9:11           ` Tom de Vries
2023-02-28 16:42       ` [PATCHv4 02/12] gdb: include breakpoint number in testing condition error message Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 03/12] gdbserver: allows agent_mem_read to return an error code Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 04/12] gdbserver: allow agent expressions to fail with invalid memory access Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 05/12] gdb: avoid repeated signal reporting during failed conditional breakpoint Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 06/12] gdb: don't always print breakpoint location after failed condition check Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 07/12] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 08/12] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 09/12] gdb: add timeouts for inferior function calls Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 10/12] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 11/12] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-02-28 16:42       ` [PATCHv4 12/12] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-03-16 17:36       ` [PATCHv5 00/11] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-03-16 17:36         ` [PATCHv5 01/11] gdb: include breakpoint number in testing condition error message Andrew Burgess
2023-04-03 13:50           ` Andrew Burgess
2023-07-07 12:08           ` Pedro Alves
2023-07-07 15:43             ` Andrew Burgess
2023-07-07 16:19               ` Pedro Alves
2023-07-10 10:30                 ` Andrew Burgess
2023-03-16 17:36         ` [PATCHv5 02/11] gdbserver: allows agent_mem_read to return an error code Andrew Burgess
2023-04-03 13:50           ` Andrew Burgess
2023-03-16 17:36         ` [PATCHv5 03/11] gdbserver: allow agent expressions to fail with invalid memory access Andrew Burgess
2023-04-03 13:50           ` Andrew Burgess
2023-07-07 12:25           ` Pedro Alves
2023-07-07 16:28             ` Andrew Burgess
2023-07-07 17:26               ` Pedro Alves
2023-07-07 21:19                 ` Andrew Burgess
2023-07-10 10:32                 ` Andrew Burgess
2023-07-10 10:44                   ` Pedro Alves
2023-07-10 13:44                     ` Andrew Burgess
2023-03-16 17:36         ` [PATCHv5 04/11] gdb: avoid repeated signal reporting during failed conditional breakpoint Andrew Burgess
2023-04-03 13:50           ` Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 05/11] gdb: don't always print breakpoint location after failed condition check Andrew Burgess
2023-04-03 13:51           ` Andrew Burgess
2023-07-07 15:20           ` Pedro Alves
2023-07-07 15:24             ` Pedro Alves
2023-07-07 21:18               ` Andrew Burgess
2023-07-11 12:06                 ` Pedro Alves
2023-07-14 12:17                   ` Andrew Burgess
2023-07-17 17:17                     ` Pedro Alves
2023-08-03 13:57                       ` Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 06/11] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 07/11] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 08/11] gdb: add timeouts for inferior function calls Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 09/11] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 10/11] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-03-16 17:37         ` [PATCHv5 11/11] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-04-03 14:01         ` [PATCHv6 0/6] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 1/6] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 2/6] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 3/6] gdb: add timeouts for inferior function calls Andrew Burgess
2023-07-11 14:23             ` Pedro Alves
2023-07-14 15:20               ` Andrew Burgess
2023-07-14 19:52                 ` Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 4/6] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 5/6] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-04-03 14:01           ` [PATCHv6 6/6] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-05-15 19:22           ` [PATCHv7 0/6] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-05-15 19:22             ` [PATCHv7 1/6] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-05-16 15:08               ` Aktemur, Tankut Baris
2023-05-15 19:22             ` [PATCHv7 2/6] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-05-16 15:09               ` Aktemur, Tankut Baris
2023-06-05 13:53                 ` Andrew Burgess
2023-05-15 19:22             ` [PATCHv7 3/6] gdb: add timeouts for inferior function calls Andrew Burgess
2023-05-16 15:42               ` Aktemur, Tankut Baris
2023-06-05 13:54                 ` Andrew Burgess
2023-05-15 19:22             ` [PATCHv7 4/6] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-05-16 16:00               ` Aktemur, Tankut Baris
2023-06-05 13:55                 ` Andrew Burgess
2023-05-15 19:22             ` [PATCHv7 5/6] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-05-15 19:22             ` [PATCHv7 6/6] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-06-07 10:01             ` [PATCHv8 0/6] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 1/6] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 2/6] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 3/6] gdb: add timeouts for inferior function calls Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 4/6] gdb/remote: avoid SIGINT after calling remote_target::stop Andrew Burgess
2023-07-07 17:18                 ` Pedro Alves
2023-07-10 20:04                   ` Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 5/6] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-06-07 10:01               ` [PATCHv8 6/6] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2023-06-07 12:41                 ` Eli Zaretskii
2023-06-07 14:29                   ` Andrew Burgess
2023-06-07 15:31                     ` Eli Zaretskii
2023-07-04 11:20               ` [PATCHv8 0/6] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2023-12-02 10:52               ` [PATCHv9 0/5] " Andrew Burgess
2023-12-02 10:52                 ` [PATCHv9 1/5] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2023-12-02 10:52                 ` [PATCHv9 2/5] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2023-12-02 10:52                 ` [PATCHv9 3/5] gdb: add timeouts for inferior function calls Andrew Burgess
2023-12-02 10:52                 ` [PATCHv9 4/5] gdb: introduce unwind-on-timeout setting Andrew Burgess
2023-12-02 10:52                 ` [PATCHv9 5/5] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2024-01-02 15:57                 ` [PATCHv10 0/5] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2024-01-02 15:57                   ` [PATCHv10 1/5] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2024-01-02 15:57                   ` [PATCHv10 2/5] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2024-01-02 15:57                   ` [PATCHv10 3/5] gdb: add timeouts for inferior function calls Andrew Burgess
2024-01-02 15:57                   ` [PATCHv10 4/5] gdb: introduce unwind-on-timeout setting Andrew Burgess
2024-01-02 15:57                   ` [PATCHv10 5/5] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2024-03-05 15:40                   ` [PATCHv11 0/5] Infcalls from B/P conditions in multi-threaded inferiors Andrew Burgess
2024-03-05 15:40                     ` [PATCHv11 1/5] Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait" Andrew Burgess
2024-03-05 15:40                     ` [PATCHv11 2/5] gdb: fix b/p conditions with infcalls in multi-threaded inferiors Andrew Burgess
2024-03-05 15:40                     ` [PATCHv11 3/5] gdb: add timeouts for inferior function calls Andrew Burgess
2024-03-05 15:40                     ` [PATCHv11 4/5] gdb: introduce unwind-on-timeout setting Andrew Burgess
2024-03-05 15:40                     ` [PATCHv11 5/5] gdb: rename unwindonsignal to unwind-on-signal Andrew Burgess
2024-03-14 16:08                     ` [PATCHv11 0/5] Infcalls from B/P conditions in multi-threaded inferiors Keith Seitz
2024-03-15 13:26                     ` Luis Machado
2024-03-25 17:47                     ` Andrew Burgess

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM4PR11MB730375B56A5FF26F0567F666C4C59@DM4PR11MB7303.namprd11.prod.outlook.com \
    --to=tankut.baris.aktemur@intel.com \
    --cc=aburgess@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).