diff options
author | David Smith <dsmith@redhat.com> | 2009-05-18 13:05:01 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-05-18 13:05:01 -0500 |
commit | cf2742ffae0f4333eb3a69a768c8a3b7aa319c49 (patch) | |
tree | 6e818866c45cdb9719c79707b4869598472c8498 /runtime/itrace.c | |
parent | 1a88a67755fa23e8fcf74058ffa984b132f9ce02 (diff) | |
download | systemtap-steved-cf2742ffae0f4333eb3a69a768c8a3b7aa319c49.tar.gz systemtap-steved-cf2742ffae0f4333eb3a69a768c8a3b7aa319c49.tar.xz systemtap-steved-cf2742ffae0f4333eb3a69a768c8a3b7aa319c49.zip |
PR10091 fixes.
* runtime/itrace.c (usr_itrace_report_signal): Add a workaround for
ppc-specific problem.
* testsuite/systemtap.base/itrace.exp: Improved tests. Improved test
completeness. Will also no longer give fails for systems that don't
support single or block step (will give xfails instead).
Diffstat (limited to 'runtime/itrace.c')
-rw-r--r-- | runtime/itrace.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/runtime/itrace.c b/runtime/itrace.c index 68f85301..1c8e8d87 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -182,8 +182,14 @@ static u32 usr_itrace_report_signal(u32 action, if (info->si_signo != SIGTRAP || !ui) return UTRACE_RESUME; +#if defined(UTRACE_ORIG_VERSION) && defined(CONFIG_PPC) + /* Because of a ppc utrace bug, we need to stop the task here. + usr_itrace_report_quiesce() will continue stepping the task. */ + return_flags = UTRACE_SIGNAL_IGN | UTRACE_STOP | UTRACE_ACTION_NEWSTATE; +#else /* normal case: continue stepping */ return_flags = ui->step_flag | UTRACE_SIGNAL_IGN; +#endif #ifdef CONFIG_PPC if (ui->ppc_atomic_ss.step_over_atomic) { remove_atomic_ss_breakpoint(tsk, &ui->ppc_atomic_ss.end_bpt); |