[CRIU] [PATCH] tests: Check that no-breakpoints restore works
Pavel Emelyanov
xemul at virtuozzo.com
Wed Apr 27 05:00:18 PDT 2016
On 04/27/2016 01:44 PM, Cyrill Gorcunov wrote:
> On Wed, Apr 27, 2016 at 01:23:04PM +0300, Pavel Emelyanov wrote:
>>
>> Signed-off-by: Pavel Emelyanov <xemul at virtuozzo.com>
>> ---
>> criu/include/fault-injection.h | 1 +
>> criu/parasite-syscall.c | 6 +++++-
>> test/jenkins/criu-fault.sh | 1 +
>> 3 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/criu/include/fault-injection.h b/criu/include/fault-injection.h
>> index c69a1c9..f1e5c72 100644
>> --- a/criu/include/fault-injection.h
>> +++ b/criu/include/fault-injection.h
>> @@ -10,6 +10,7 @@ enum faults {
>> /* not fatal */
>> FI_CHECK_OPEN_HANDLE = 128,
>> FI_NO_MEMFD = 129,
>> + FI_NO_BREAKPOINTS = 130,
>> FI_MAX,
>> };
>>
>> diff --git a/criu/parasite-syscall.c b/criu/parasite-syscall.c
>> index a5b2fc7..f9e0bac 100644
>> --- a/criu/parasite-syscall.c
>> +++ b/criu/parasite-syscall.c
>> @@ -1428,7 +1428,11 @@ int ptrace_stop_pie(pid_t pid, void *addr, enum trace_flags *tf)
>> {
>> int ret;
>>
>> - ret = ptrace_set_breakpoint(pid, addr);
>> + if (fault_injected(FI_NO_BREAKPOINTS)) {
>> + pr_debug("Force no-breakpoints restore\n");
>> + ret = 0;
>> + } else
>> + ret = ptrace_set_breakpoint(pid, addr);
>> if (ret < 0)
>> return ret;
>
> What about clear_breakpoints?
Hm... It worked for some reason, but yes, I agree. It's better to ban this
thing too :) Will send patch soon.
-- Pavel
More information about the CRIU
mailing list