Ptrace功能强大,可以用于调试跟踪。跑了蒸米大神写的例子,学习一下。
实验1:获取system call的编号
要ptrace的目标程序target,用来一直循环输出
#include <stdio.h>
int count = 0;
void sevenWeapons(int number){
char* str = "hello!";
printf("%s, %d\n",str,number);
}
int main(){
while(1){
sevenWeapons(count);
count++;
sleep(1);
}
return 0;
}
Android.mk写法有些不一样,否则会报错:
error: only position independent executables (PIE) are supported.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := target
LOCAL_SRC_FILES := target.c
LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE
include $(BUILD_EXECUTABLE)