ptrace不能在64位工作

时间:2017-05-23 14:44:34

标签: c linux

请有人告诉我为什么波纹管代码不适用于64位linux 父进程将通过正常执行的ptrace.initially子进程更改tchild中的数据值,并通过信号挂起进程并更改tchild程序中的数据。

#table1,
#table 2 { 
  border-collapse: collapse;
  border-spacing: 0;  
  border: 1px solid #ddd; 
}
#table1-wrapper {
  width:auto;
  float:left;
  position:fixed;
  left:0px;
  z-index:9999;
  background-color:#fff; 
}
#table2-wrapper {
  width:auto;
  float:left;
  margin-left:73px;   /* offsets by the width of the first table */
  background-color:#fff;
}
tr:nth-child(even) {
  background-color: #f2f2f2;
}

1 个答案:

答案 0 :(得分:1)

您似乎忘记在父流程中附加目标流程。您还需要等待跟踪的程序在发送信号后停止

ptrace(PTRACE_ATTACH, pid, 0, 0);
wait(&status);
printf("parent start\n");

if (WIFSTOPPED(status)) { printf("child stopped \n"); } 

data = ptrace(PTRACE_GETREGS, pid, 0,&regs); printf("%d\n", data);
data = 30; 
ptrace(PTRACE_POKEDATA, pid,   201010  + 8 , &data );  )