iOS官网问答:Detecting the Debugger(判断是否处于联机调试)
来源:互联网 发布:电商网站模板源码 编辑:程序博客网 时间:2024/06/10 00:16
这是来自苹果文档的Technical Q&A QA1361 Detecting the Debugger
Q: 我如何判断程序当前是处在联机调试?
A:最好使用以下代码来判断
#include <assert.h>#include <stdbool.h>#include <sys/types.h>#include <unistd.h>#include <sys/sysctl.h>static bool AmIBeingDebugged(void)// Returns true if the current process is being debugged (either// running under the debugger or has a debugger attached post facto).{ int junk; int mib[4]; struct kinfo_proc info; size_t size; // Initialize the flags so that, if sysctl fails for some bizarre // reason, we get a predictable result. info.kp_proc.p_flag =0; // Initialize mib, which tells sysctl the info we want, in this case // we're looking for information about a specific process ID. mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = getpid(); // Call sysctl. size = sizeof(info); junk = sysctl(mib, sizeof(mib) /sizeof(*mib), &info, &size, NULL,0); assert(junk == 0); // We're being debugged if the P_TRACED flag is set. return ( (info.kp_proc.p_flag &P_TRACED) != 0 );}PS:因为kinfo_proc结构体的定义<定义在sys/sysctl.h中>在__APPLE_API_UNSTABLE中是有条件的,所以尽量少用上述代码调试debug版
- iOS官网问答:Detecting the Debugger(判断是否处于联机调试)
- 枚举线程,判断是否处于调试模式
- IOS中判断uitableview是否处于滚动状态
- iOS-OC-判断某个时间是否处于某个时间段内
- iOS 判断当前时间是否处于某个时间段内
- unity 联机调试(android ios)
- IOS联机调试
- C#判断时间是否处于某个时间段内(当天)
- 使用调试器类(Using the Debugger Class)
- 使用PDB(The Python Debugger)命令行调试Python代码
- pdb — The Python Debugger(Python调试器)
- javaScript调试(debugger;)
- 判断Cookies是否处于开启状态
- 判断Cookies是否处于开启状态
- 判断Cookies是否处于开启状态
- 判断Cookies是否处于开启状态
- 判断GridView是否处于编辑状态
- 判断游标是否处于开启状态
- Android版本百度地图开发(一)——创建应用
- Oracle to_date(...)函数相关
- 你对公司的影响力
- fedora设置开机自动启动应用程序
- Tomcat、JBOSS、WebSphere、WebLogic、Apache之间的区别
- iOS官网问答:Detecting the Debugger(判断是否处于联机调试)
- hdu 4052 Adding New Machine 扫描线求矩形面积并
- 从插件/RCP中取得文件路径的方法
- Oracle 触发器练习
- Windows API串口编程参考
- 【Intel DPDK】Makefile编写在应用中添加新的程序代码
- oracle 游标变量ref cursor详解
- Java多线程编程学习笔记之一:线程中断(含代码)
- CSAPP实验一datalab