From: Yao Qi <qiyaoltc@gmail.com>
To: Sergio Durigan Junior <sergiodj@redhat.com>
Cc: Yao Qi <qiyaoltc@gmail.com>, Pedro Alves <palves@redhat.com>,
gdb-patches@sourceware.org
Subject: Re: [RFC] Support command "catch syscall" properly on different targets
Date: Mon, 09 Mar 2015 14:29:00 -0000 [thread overview]
Message-ID: <86vbiags7c.fsf@gmail.com> (raw)
In-Reply-To: <87lhj9zsss.fsf@redhat.com> (Sergio Durigan Junior's message of "Fri, 06 Mar 2015 17:04:35 -0500")
Sergio Durigan Junior <sergiodj@redhat.com> writes:
> So, as I said in my previous messages, I don't think that making the
> "catch syscall" command to fail on the exec target.
>
> What do you think of the attached patch (applies on top of your patch,
> rebased to the current HEAD)? It implements what I proposed, but in a
> different way. If the target is "None" (no binary loaded) or "exec"
> (inferior loaded but never started), then it displays a warning but
> still creates the catchpoint. The actual check for these targets
> happens in the insert_catch_syscall function, which is called when we
> already know if the target actually supports the syscall catchpoint.
>
> Maybe I forgot to cover some corner case, but I still think we should
> support "catch syscall" when no inferior has been started.
I don't have a strong opinion against your approach. Since "catch
point" is only supported on some arches on linux native target, I think
it is OK to leave gdbarch_get_syscall_number_p checking in
catch_syscall_command_1, so I withdraw my patch.
However, when I play with your patch, I find GDB can disable catch point if it
isn't inserted successfully, in breakpoint.c:insert_bp_location,
else if (bl->owner->type == bp_catchpoint)
{
int val;
gdb_assert (bl->owner->ops != NULL
&& bl->owner->ops->insert_location != NULL);
val = bl->owner->ops->insert_location (bl);
if (val)
{
bl->owner->enable_state = bp_disabled;
if (val == 1)
warning (_("\
Error inserting catchpoint %d: Your system does not support this type\n\
of catchpoint."), bl->owner->number);
else
warning (_("Error inserting catchpoint %d."), bl->owner->number);
}
as shown below,
(gdb) target remote :1234
Remote debugging using :1234
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
0x00007ffff7ddb2d0 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.
warning: Error inserting catchpoint 1: Your system does not support this type
of catchpoint.
....
(gdb) info breakpoints
Num Type Disp Enb Address What
1 catchpoint keep n syscall "open"
According this observation, I don't see the need check
gdbarch_get_syscall_number_p in catch_syscall_command_1. Probably we
can remove it.
--
Yao (齐尧)
next prev parent reply other threads:[~2015-03-09 14:29 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-27 14:23 Yao Qi
2015-02-27 18:49 ` Doug Evans
2015-03-03 11:56 ` Yao Qi
2015-03-03 12:14 ` Pedro Alves
2015-02-27 18:50 ` Pedro Alves
2015-03-03 12:06 ` Yao Qi
2015-03-03 12:38 ` Pedro Alves
2015-02-27 21:04 ` Sergio Durigan Junior
2015-03-03 12:11 ` Yao Qi
2015-03-03 12:29 ` Pedro Alves
2015-03-03 18:06 ` Sergio Durigan Junior
2015-03-03 18:18 ` Pedro Alves
2015-03-06 16:36 ` Yao Qi
2015-03-06 22:04 ` Sergio Durigan Junior
2015-03-09 14:29 ` Yao Qi [this message]
2015-03-10 4:53 ` Sergio Durigan Junior
2015-03-09 14:10 ` Yao Qi
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=86vbiags7c.fsf@gmail.com \
--to=qiyaoltc@gmail.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=sergiodj@redhat.com \
/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).