ptrace在Android上返回-1

Mir*_*ric 11 java-native-interface android ptrace gdb

我正在尝试检测gdb何时附加到我的应用程序,我在JNI代码中使用它

long x = ptrace(PTRACE_TRACEME, 0, 1, 0);    
char buffer[24];
sprintf(buffer, "ptrace = %ld", x);
return (*env)->NewStringUTF(env, buffer);
Run Code Online (Sandbox Code Playgroud)

但是,无论是否附加gdb ,x总是-1如此.这是为什么?我能做些什么来弄清楚我做错了什么?