code suivant travaille pour moi et semble répondre à vos besoins -
Ac
#include<stdio.h>
int main()
{
int i=0;
printf("My PID is - %ld\n",getpid());
while(i>=0)
{
}
return 0;
}
Bc - processus Tracing
int main()
{
int pid;
int status;
struct user_regs_struct regs;
unsigned int eip;
printf("Enter pid to trace : \n");
scanf("%d",&pid);
printf("PID to be traced - %ld\n",pid);
ptrace(PTRACE_ATTACH,pid,0,0);
if(errno)
{
perror("attach");
return -1;
}
waitpid(pid,&status,WUNTRACED);
printf("Process Stopped\n");
while(1)
{
ptrace(PTRACE_GETREGS,pid,0,®s);
eip=ptrace(PTRACE_PEEKTEXT,pid,regs.eip,0);
printf("EIP - 0x%08x, instruction executed - 0x%08x\n",regs.eip,eip);
ptrace(PTRACE_CONT,pid,0,0);
waitpid(pid,&status,WUNTRACED);
}
return 0;
}
Signal passé -
kill kill -STOP 17779 -STOP 17779
sortie de A -
xxxxx!xxxxx:~/myPer/stack_overflow [135]$ ./A
My PID is - 17779
sortie de B -
XXXXX!xxxxx:~/myPer/stack_overflow [121]$ ./B
Enter pid to trace :
17779
PID to be traced - 17779
Process Stopped
EIP - 0x080483e1, instruction executed - 0x00f87d83
EIP - 0x080483e5, instruction executed - 0x00b8fa79
EIP - 0x080483e5, instruction executed - 0x00b8fa79
On voit que B affiche une valeur EIP pour chaque signal délivré au client. Fondamentalement, le signal n'est pas remis à A, mais B se réveille et examine EIP, puis continue dans la boucle. Vous pouvez modifier le code pour délivrer le signal si vous le souhaitez.
Voici ce que j'ai compris de votre question. Si j'ai compris quelque chose d'autre s'il vous plaît faites le moi savoir et je mettrai à jour la réponse en conséquence
http://social.msdn.microsoft.com/Forums/fr/netfxtoolsdev/thread/4f21d7d8-d30e-4754-a0f6-dc2da3b75c40 lien pertinent pour les fenêtres .. –
s'il vous plaît poster votre code – osgx
kill() pour arrêter et PTRACE_CONT est de continuer est la bonne combinaison. La plupart des débogueurs utilisent SIGINT (au lieu de SIGSTOP) pour arrêter le processus, vous pouvez essayer cela. Mais je devine que vous avez fait une autre erreur, vous devrez poster votre code. – Fabian