From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: A issue about ptrace/SINGLESTEP on arm64
Date: Tue, 17 Oct 2017 10:23:00 +0100 [thread overview]
Message-ID: <20171017092259.GA21398@arm.com> (raw)
In-Reply-To: <d8b5e71d-f8db-bee0-dadf-c57724a68daa@huawei.com>
On Tue, Oct 17, 2017 at 10:04:00AM +0800, chengjian (D) wrote:
> On 2017/10/16 23:30, Will Deacon wrote:
> >Can you jump the PC once the child appears to be "stuck"?
> >
> >IIRC, GDB has special heuristics to step through LDXR/STXR critical
> >sections.
> The function can be returned, But the number of instructions looks too much
> We use objdump to count the assembly code length of the program
>
> #=======
> #trace
> #=======
> ptrace/2-arm64-loop # objdump -d ./nop | wc -l
> 115885
>
>
> ptrace/2-arm64-loop # ./ptrace_singlestep ./nop
>
> ./nop : nop
> Please wait
> Number of machine instructions : 186688022
>
>
> /ptrace/2-arm64-loop # ./ptrace_singlestep ./nop
>
> ./nop : nop
> Please wait
> Number of machine instructions : 103670668
>
>
> The number of instructions executed twice is not the same
What is "nop"? What does perf stat say? Does is "ptrace_singlestep"
reporting the number of instructions? Is it a periodic dump, or does it
actually wait for program termination?
> #=======
> #trace ls
> #=======
>
> ptrace/2-arm64-loop # objdump -d /bin/ls | wc -l
> 18095
>
> ptrace/2-arm64-loop # ./ptrace_singlestep /bin/ls
> /bin/ls : ls
> Please wait
> Number of machine instructions : 7718122167
I don't really know where to start here. The dynamic execution of a binary
includes branches, loops, libraries etc so of course the dynamic instruction
count is different to the static count of the binary.
> It seems that the child has also been tracked by the parent process
> when it goes into the kernel space.
Ptrace single-step shouldn't step into the kernel.
> Is this what your 'stuck' mean?
> Does all the instructions been tracked in kernel space, or only the
> LDXR/STXR?
Sorry, I don't understand what you're asking here.
Will
prev parent reply other threads:[~2017-10-17 9:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-16 4:27 A issue about ptrace/SINGLESTEP on arm64 chengjian (D)
2017-10-16 15:30 ` Will Deacon
2017-10-17 2:04 ` chengjian (D)
2017-10-17 9:23 ` Will Deacon [this message]
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=20171017092259.GA21398@arm.com \
--to=will.deacon@arm.com \
--cc=linux-arm-kernel@lists.infradead.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 NNTP newsgroup(s).