GNU bug report logs -
#64186
Patch: Suppress deprecated '-gdb-set target-async' warning message in gdb-mi.el
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64186 in the body.
You can then email your comments to 64186 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Tue, 20 Jun 2023 05:20:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Wang Diancheng <dianchengwang <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 20 Jun 2023 05:20:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
The command "-gdb-set target-async" is deprecated since gdb 7.7, It is
annoyed that there is a message "Warning: 'set target-async', an alias for
the command 'set mi-async', is deprecated. Use 'set mi-async'." when gdb
buffer is ready for command. Following is a patch to suppress that
warning.
Thanks.
[gdb-mi-suppress-target-async-warning.patch (text/x-patch, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Tue, 20 Jun 2023 07:25:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 64186 <at> debbugs.gnu.org (full text, mbox):
Wang Diancheng <dianchengwang <at> gmail.com> writes:
> Hi,
>
> The command "-gdb-set target-async" is deprecated since gdb 7.7, It is
> annoyed that there is a message "Warning: 'set target-async', an alias for
> the command 'set mi-async', is deprecated. Use 'set mi-async'." when gdb
> buffer is ready for command. Following is a patch to suppress that
> warning.
>
> Thanks.
What about versions of GDB earlier than 7.7? We should detect them, and
use `set mi-async' there.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Tue, 20 Jun 2023 09:22:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 64186 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> 于2023年6月20日周二 15:24写道:
>
> Wang Diancheng <dianchengwang <at> gmail.com> writes:
>
> > Hi,
> >
> > The command "-gdb-set target-async" is deprecated since gdb 7.7, It is
> > annoyed that there is a message "Warning: 'set target-async', an alias for
> > the command 'set mi-async', is deprecated. Use 'set mi-async'." when gdb
> > buffer is ready for command. Following is a patch to suppress that
> > warning.
> >
> > Thanks.
>
> What about versions of GDB earlier than 7.7? We should detect them, and
> use `set mi-async' there.
>
Like other places of gdb-mi.el, function gdb-set-mi-async-handler()
will use 'set target-async' if GDB (versions earlier than 7.7) reports
"No symbol".
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Tue, 20 Jun 2023 09:44:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 64186 <at> debbugs.gnu.org (full text, mbox):
Wang Diancheng <dianchengwang <at> gmail.com> writes:
> Like other places of gdb-mi.el, function gdb-set-mi-async-handler()
> will use 'set target-async' if GDB (versions earlier than 7.7) reports
> "No symbol".
OK, good. Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Tue, 20 Jun 2023 11:56:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 64186 <at> debbugs.gnu.org (full text, mbox):
> Cc: 64186 <at> debbugs.gnu.org
> From: Wang Diancheng <dianchengwang <at> gmail.com>
> Date: Tue, 20 Jun 2023 17:25:06 +0800
>
> Po Lu <luangruo <at> yahoo.com> 于2023年6月20日周二 15:24写道:
> >
> > What about versions of GDB earlier than 7.7? We should detect them, and
> > use `set mi-async' there.
> >
> Like other places of gdb-mi.el, function gdb-set-mi-async-handler()
> will use 'set target-async' if GDB (versions earlier than 7.7) reports
> "No symbol".
Isn't that too late, though? The GDB manual says:
On some targets, GDB is capable of processing MI commands even while the
target is running. This is called "asynchronous command execution"
(*note Background Execution::). The frontend may specify a preference
for asynchronous execution using the '-gdb-set mi-async 1' command,
which should be emitted before either running the executable or
attaching to the target.
However, the gdb-input call sends the request without waiting for the
response, so the handler of the response will be invoked much later,
after GDB already processed quite a few commands sent to it by Emacs
in the meantime. Thus, by the time gdb-set-mi-async-handler is
called, and we see the "No symbol" thingy and send the target-async
command instead, it could be too late, because the executable was
already run.
There's actually more here than meets the eye; see bug#63084.
Given all that mess, I wonder if "M-x gdb" in its current shape indeed
supports the asynchronous execution. If it doesn't, we may be better
off not sending that command at all for now, until bug#63084 is fixed.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Wed, 21 Jun 2023 06:46:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 64186 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> 于2023年6月20日周二 19:55写道:
>
> > Cc: 64186 <at> debbugs.gnu.org
> > From: Wang Diancheng <dianchengwang <at> gmail.com>
> > Date: Tue, 20 Jun 2023 17:25:06 +0800
> >
> > Po Lu <luangruo <at> yahoo.com> 于2023年6月20日周二 15:24写道:
> > >
> > > What about versions of GDB earlier than 7.7? We should detect them, and
> > > use `set mi-async' there.
> > >
> > Like other places of gdb-mi.el, function gdb-set-mi-async-handler()
> > will use 'set target-async' if GDB (versions earlier than 7.7) reports
> > "No symbol".
>
> Isn't that too late, though? The GDB manual says:
>
> On some targets, GDB is capable of processing MI commands even while the
> target is running. This is called "asynchronous command execution"
> (*note Background Execution::). The frontend may specify a preference
> for asynchronous execution using the '-gdb-set mi-async 1' command,
> which should be emitted before either running the executable or
> attaching to the target.
>
> However, the gdb-input call sends the request without waiting for the
> response, so the handler of the response will be invoked much later,
> after GDB already processed quite a few commands sent to it by Emacs
> in the meantime. Thus, by the time gdb-set-mi-async-handler is
> called, and we see the "No symbol" thingy and send the target-async
> command instead, it could be too late, because the executable was
> already run.
>
> There's actually more here than meets the eye; see bug#63084.
>
> Given all that mess, I wonder if "M-x gdb" in its current shape indeed
> supports the asynchronous execution. If it doesn't, we may be better
> off not sending that command at all for now, until bug#63084 is fixed.
Yes, I agree. Currently gdb-mi doesn't actually support asynchronous
execution because of bug#63084. Before it is fixed, to suppress the
annoying warning, we can set gdb-non-stop-setting to nil as a
workaround.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Wed, 21 Jun 2023 13:13:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 64186 <at> debbugs.gnu.org (full text, mbox):
merge 64186 63084
thanks
> From: Wang Diancheng <dianchengwang <at> gmail.com>
> Date: Wed, 21 Jun 2023 14:49:01 +0800
> Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
>
> Eli Zaretskii <eliz <at> gnu.org> 于2023年6月20日周二 19:55写道:
> >
> > Given all that mess, I wonder if "M-x gdb" in its current shape indeed
> > supports the asynchronous execution. If it doesn't, we may be better
> > off not sending that command at all for now, until bug#63084 is fixed.
>
> Yes, I agree. Currently gdb-mi doesn't actually support asynchronous
> execution because of bug#63084. Before it is fixed, to suppress the
> annoying warning, we can set gdb-non-stop-setting to nil as a
> workaround.
Thanks, I've now done so on the emacs-29 branch. I will leave this
bug open (and merge it to bug#63084), so that they could be fixed in
the future, hopefully not too distant future.
Merged 63084 64186.
Request was from
Eli Zaretskii <eliz <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Wed, 21 Jun 2023 13:13:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Wed, 28 Jun 2023 03:49:02 GMT)
Full text and
rfc822 format available.
Message #28 received at 64186 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
Eli Zaretskii <eliz <at> gnu.org> 于2023年6月21日周三 21:12写道:
>
> merge 64186 63084
> thanks
>
> > From: Wang Diancheng <dianchengwang <at> gmail.com>
> > Date: Wed, 21 Jun 2023 14:49:01 +0800
> > Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
> >
> > Eli Zaretskii <eliz <at> gnu.org> 于2023年6月20日周二 19:55写道:
> > >
> > > Given all that mess, I wonder if "M-x gdb" in its current shape indeed
> > > supports the asynchronous execution. If it doesn't, we may be better
> > > off not sending that command at all for now, until bug#63084 is fixed.
> >
> > Yes, I agree. Currently gdb-mi doesn't actually support asynchronous
> > execution because of bug#63084. Before it is fixed, to suppress the
> > annoying warning, we can set gdb-non-stop-setting to nil as a
> > workaround.
>
> Thanks, I've now done so on the emacs-29 branch. I will leave this
> bug open (and merge it to bug#63084), so that they could be fixed in
> the future, hopefully not too distant future.
I did some hacks to make gdb-non-stop work, patch is attached. The
patch try to set `gdb-non-stop` when target is running or at first
stop. Sorry for rough patch. I'm new for elisp.
[gdb-mi-support-non-stop.patch (text/x-patch, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Thu, 29 Jun 2023 06:10:01 GMT)
Full text and
rfc822 format available.
Message #31 received at 64186 <at> debbugs.gnu.org (full text, mbox):
> From: Wang Diancheng <dianchengwang <at> gmail.com>
> Date: Wed, 28 Jun 2023 11:51:39 +0800
> Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
>
> I did some hacks to make gdb-non-stop work, patch is attached. The
> patch try to set `gdb-non-stop` when target is running or at first
> stop. Sorry for rough patch. I'm new for elisp.
Thanks. This looks about right to me, except that "run&" is not the
only command whose side effect is that the debuggee is running in the
background mode. We also need to at least consider "attach&", I
think. Maybe it would be useful to have a list of such commands, so
that we could expand it as needed in the future, because currently I
don't really understand what triggers background execution that causes
"-list-target-features" to report "async". It sounds possible that
this happens only after the first command that ends with "&", in which
case we will need to add to the list all the commands mentioned in the
"Background Execution" node of the GDB manual. This affects the test
below:
> + ;; Set `gdb-non-stop` when `gdb-last-command` is a CLI background
> + ;; `run` command e.g. r& or MI command `-exec-run`
> + (when (or (string-match "&\s*$" gdb-last-command)
> + (string-match "-exec-run" gdb-last-command))
> + (gdb-try-check-target-async-support))
And I'm not sure I understand the idea behind this part:
> @@ -2722,6 +2744,9 @@ gdb-stopped
>
> ;; Print "(gdb)" to GUD console
> (when gdb-first-done-or-error
> + ;; If run target with CLI foreground command `run`, `target
> + ;; async` can only be checked when target is stopped
> + (gdb-try-check-target-async-support)
> (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name)))
Can you elaborate?
Finally, please don't quote symbols `like this` in comments. Our
conventions are to quote symbols 'like this' or `like this'.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Fri, 30 Jun 2023 07:05:01 GMT)
Full text and
rfc822 format available.
Message #34 received at 64186 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> 于2023年6月29日周四 14:08写道:
>
> > From: Wang Diancheng <dianchengwang <at> gmail.com>
> > Date: Wed, 28 Jun 2023 11:51:39 +0800
> > Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
> >
> > I did some hacks to make gdb-non-stop work, patch is attached. The
> > patch try to set `gdb-non-stop` when target is running or at first
> > stop. Sorry for rough patch. I'm new for elisp.
>
> Thanks. This looks about right to me, except that "run&" is not the
> only command whose side effect is that the debuggee is running in the
> background mode. We also need to at least consider "attach&", I
> think. Maybe it would be useful to have a list of such commands, so
> that we could expand it as needed in the future, because currently I
> don't really understand what triggers background execution that causes
> "-list-target-features" to report "async". It sounds possible that
> this happens only after the first command that ends with "&", in which
> case we will need to add to the list all the commands mentioned in the
> "Background Execution" node of the GDB manual. This affects the test
> below:
>
Thanks for your comments.I think what exactly the value of
`gdb-last-command’ is not essential for us.
We just need to know whether `gdb-last-command' is a CLI command in
the background or a MI command,
since here we have already got its "running" status. We must check
the target "async" feature after stopping
the debuggee at the first time in function `gdb-stopped' if
`gdb-last-command' is not a background CLI command or a MI command.
> > + ;; Set `gdb-non-stop` when `gdb-last-command` is a CLI background
> > + ;; `run` command e.g. r& or MI command `-exec-run`
> > + (when (or (string-match "&\s*$" gdb-last-command)
> > + (string-match "-exec-run" gdb-last-command))
> > + (gdb-try-check-target-async-support))
>
> And I'm not sure I understand the idea behind this part:
>
> > @@ -2722,6 +2744,9 @@ gdb-stopped
> >
> > ;; Print "(gdb)" to GUD console
> > (when gdb-first-done-or-error
> > + ;; If run target with CLI foreground command `run`, `target
> > + ;; async` can only be checked when target is stopped
> > + (gdb-try-check-target-async-support)
> > (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name)))
>
> Can you elaborate?
Thanks for your questions, according to my comments above, If the
debuggee has been started by
a non-background CLI command e.g. “run" or "attach" (no trailing "&")
commands, we can only
check the target "async" feature at the code stack.
>
> Finally, please don't quote symbols `like this` in comments. Our
> conventions are to quote symbols 'like this' or `like this'.
I updated the patch, see the attachment.
[gdb-mi-support-non-stop-v2.patch (text/x-patch, attachment)]
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Thu, 06 Jul 2023 07:11:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Wang Diancheng <dianchengwang <at> gmail.com>
:
bug acknowledged by developer.
(Thu, 06 Jul 2023 07:11:02 GMT)
Full text and
rfc822 format available.
Message #39 received at 64186-done <at> debbugs.gnu.org (full text, mbox):
> From: Wang Diancheng <dianchengwang <at> gmail.com>
> Date: Fri, 30 Jun 2023 15:08:18 +0800
> Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
>
> Thanks for your comments.I think what exactly the value of
> `gdb-last-command’ is not essential for us.
> We just need to know whether `gdb-last-command' is a CLI command in
> the background or a MI command,
> since here we have already got its "running" status. We must check
> the target "async" feature after stopping
> the debuggee at the first time in function `gdb-stopped' if
> `gdb-last-command' is not a background CLI command or a MI command.
>
> > > + ;; Set `gdb-non-stop` when `gdb-last-command` is a CLI background
> > > + ;; `run` command e.g. r& or MI command `-exec-run`
> > > + (when (or (string-match "&\s*$" gdb-last-command)
> > > + (string-match "-exec-run" gdb-last-command))
> > > + (gdb-try-check-target-async-support))
> >
> > And I'm not sure I understand the idea behind this part:
> >
> > > @@ -2722,6 +2744,9 @@ gdb-stopped
> > >
> > > ;; Print "(gdb)" to GUD console
> > > (when gdb-first-done-or-error
> > > + ;; If run target with CLI foreground command `run`, `target
> > > + ;; async` can only be checked when target is stopped
> > > + (gdb-try-check-target-async-support)
> > > (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name)))
> >
> > Can you elaborate?
>
> Thanks for your questions, according to my comments above, If the
> debuggee has been started by
> a non-background CLI command e.g. “run" or "attach" (no trailing "&")
> commands, we can only
> check the target "async" feature at the code stack.
>
> >
> > Finally, please don't quote symbols `like this` in comments. Our
> > conventions are to quote symbols 'like this' or `like this'.
>
> I updated the patch, see the attachment.
Thanks, installed on the master branch, and closing the bug.
Note that, with this patch you have exhausted the amount of changes we
can accept from you without copyright assignment to the FSF. Would
you like to start the copyright assignment paperwork at this time, so
that we could accept more changes from you in the future? If you are
willing to start the assignment process, I will send you the form to
fill and the instructions to go with it.
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Thu, 06 Jul 2023 07:11:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
tatrics <at> gmail.com
:
bug acknowledged by developer.
(Thu, 06 Jul 2023 07:11:03 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Fri, 07 Jul 2023 06:23:01 GMT)
Full text and
rfc822 format available.
Message #47 received at 64186-done <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> 于2023年7月6日周四 15:10写道:
>
> > From: Wang Diancheng <dianchengwang <at> gmail.com>
> > Date: Fri, 30 Jun 2023 15:08:18 +0800
> > Cc: luangruo <at> yahoo.com, 64186 <at> debbugs.gnu.org
> >
> > Thanks for your comments.I think what exactly the value of
> > `gdb-last-command’ is not essential for us.
> > We just need to know whether `gdb-last-command' is a CLI command in
> > the background or a MI command,
> > since here we have already got its "running" status. We must check
> > the target "async" feature after stopping
> > the debuggee at the first time in function `gdb-stopped' if
> > `gdb-last-command' is not a background CLI command or a MI command.
> >
> > > > + ;; Set `gdb-non-stop` when `gdb-last-command` is a CLI background
> > > > + ;; `run` command e.g. r& or MI command `-exec-run`
> > > > + (when (or (string-match "&\s*$" gdb-last-command)
> > > > + (string-match "-exec-run" gdb-last-command))
> > > > + (gdb-try-check-target-async-support))
> > >
> > > And I'm not sure I understand the idea behind this part:
> > >
> > > > @@ -2722,6 +2744,9 @@ gdb-stopped
> > > >
> > > > ;; Print "(gdb)" to GUD console
> > > > (when gdb-first-done-or-error
> > > > + ;; If run target with CLI foreground command `run`, `target
> > > > + ;; async` can only be checked when target is stopped
> > > > + (gdb-try-check-target-async-support)
> > > > (setq gdb-filter-output (concat gdb-filter-output gdb-prompt-name)))
> > >
> > > Can you elaborate?
> >
> > Thanks for your questions, according to my comments above, If the
> > debuggee has been started by
> > a non-background CLI command e.g. “run" or "attach" (no trailing "&")
> > commands, we can only
> > check the target "async" feature at the code stack.
> >
> > >
> > > Finally, please don't quote symbols `like this` in comments. Our
> > > conventions are to quote symbols 'like this' or `like this'.
> >
> > I updated the patch, see the attachment.
>
> Thanks, installed on the master branch, and closing the bug.
>
> Note that, with this patch you have exhausted the amount of changes we
> can accept from you without copyright assignment to the FSF. Would
> you like to start the copyright assignment paperwork at this time, so
> that we could accept more changes from you in the future? If you are
> willing to start the assignment process, I will send you the form to
> fill and the instructions to go with it.
I'd like to start the copyright assignment paperwork, send me the form
please. Thank you.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64186
; Package
emacs
.
(Fri, 07 Jul 2023 06:43:01 GMT)
Full text and
rfc822 format available.
Message #50 received at 64186-done <at> debbugs.gnu.org (full text, mbox):
> From: Wang Diancheng <dianchengwang <at> gmail.com>
> Date: Fri, 7 Jul 2023 14:25:58 +0800
> Cc: luangruo <at> yahoo.com, 64186-done <at> debbugs.gnu.org
>
> Eli Zaretskii <eliz <at> gnu.org> 于2023年7月6日周四 15:10写道:
> >
> > Note that, with this patch you have exhausted the amount of changes we
> > can accept from you without copyright assignment to the FSF. Would
> > you like to start the copyright assignment paperwork at this time, so
> > that we could accept more changes from you in the future? If you are
> > willing to start the assignment process, I will send you the form to
> > fill and the instructions to go with it.
>
> I'd like to start the copyright assignment paperwork, send me the form
> please. Thank you.
Thanks, form sent off-list.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 10 Aug 2023 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 312 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.