[Bug 236035] ptrace: SIGTRAP and EXIT race
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Feb 25 19:05:22 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236035
Bug ID: 236035
Summary: ptrace: SIGTRAP and EXIT race
Product: Base System
Version: 12.0-RELEASE
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: robert.ayrapetyan at gmail.com
When tracing a process using ptrace and there are multiple threads in the
tracing process hitting the same breakpoint, sometimes main thread exits
(WIFEXITED(status) is TRUE) before last queued TRAP_BKPT signal(s) have been
delivered to the tracing process. So a final breakpoint hits counter is less
than it should be.
Steps to reproduce:
cd /tmp
git clone https://github.com/rayrapetyan/ptrace_bug_poc.git
cd ptrace_bug_poc
mkdir build
cd build
cmake ..
make
Run ~20 times:
/tmp/ptrace_bug_poc/build/src/ptrace_test/ptrace_test
/tmp/ptrace_bug_poc/build/src/mt_example/mt_example 0x201385
-------
Note: make sure 0x201385 is a call to <printf at plt> in
"/tmp/ptrace_bug_poc/build/src/mt_example/mt_example":
gdb /tmp/ptrace_bug_poc/build/src/mt_example/mt_example
disassemble foo
-------
Wait fo appearance of:
"BOOM! Invalid BP hits counter (hits: 1, tid: XXXX)"
at the end of the output (most of the times it will be "SUCCESS")
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list