> > + if (def == 0) { > > + for (cx = 0; scpus && scpus[cx]; cx++) { > > + cpu_single_step(scpus[cx], sstep_flags); > > + cpu_resume(scpus[cx]); > > + } > > + for (cx = 0; ccpus && ccpus[cx]; cx++) { > > + cpu_resume(ccpus[cx]); > > + } > > + } else if (def == 'c' || def == 'C') { > > + for (cx = 0; scpus && scpus[cx]; cx++) { > > + cpu_single_step(scpus[cx], sstep_flags); > > + } > > + CPU_FOREACH(cpu) { > > + cpu_resume(cpu); > > + } > > + } else if (def == 's' || def == 'S') { > > + CPU_FOREACH(cpu) { > > + cpu_single_step(cpu, sstep_flags); > > + } > > + for (cx = 0; ccpus && ccpus[cx]; cx++) { > > + cpu_single_step(cpu, 0);
This looks suspicious > > + } > > + CPU_FOREACH(cpu) { > > + cpu_resume(cpu); > > + } Claudio, did you have a look at how s->c_cpu is used later on? I remember that we have to take care of some query reply packages. David