debugging - Int 3 导致系统中断进程达到 95% CPU 使用率
问题描述
我使用 Toolset 2019 (v142) 开发了一个 Visual C++ 程序,它使用 _asm { int 3 } 块来检测它是否在调试器上下文中运行。
bool CheckDebug()
{
bool hayDebug = false;
__try
{
_asm
{
int 3
}
hayDebug = true;
}
__except (GetExceptionCode() == EXCEPTION_BREAKPOINT ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
hayDebug = false;
}
return hayDebug;
}
在数百台运行 Windows 10、8.1 和 7 的计算机中,它运行良好,但在几台计算机中,该指令会导致系统中断进程获得 95% 到 100% 的 CPU 使用率,并且程序在没有杀死自己的进程的情况下停止运行。我使用 Process Explorer 进行了检查。如果我删除该指令,该程序在所有计算机上运行良好。¿ 你能告诉我为什么会这样吗?
解决方案
推荐阅读
- android - 使用 Kotlin 实时反映数据变化 & Livedata 不起作用
- python - 替换重复值并在列中重复组合
- postgresql - postgreSQL 中的 REGEXP_SUBSTR
- c++ - 使用较新的编译器缩小转换错误
- javascript - 在表格内的文本框中获取一行数字并计算其总数
- pandas - 将额外的边属性添加到 Graph 并使用 networkx 对 dijkstra 算法中的值求和
- python - 按顺序加入两个列表
- vb.net - 使用连接字符串的 Datasource(dt).DefaultView.RowFilter 过滤 dgv
- scala - org.apache.spark#hadoop-cloud_2.12;3.1.2:未找到
- asp.net-core - Visual Studio (.NET 5) 中的格式问题