首页 > 学院 > 开发设计 > 正文

64 位应用中用什么替代 "int 3" 指令?

2019-11-08 20:17:33
字体:
来源:转载
供稿:网友

What can I use instead of “int 3” instruction in a 64-bit application?

The 64-bit version of Visual C++ compiler does not support inline assembler, so you cannot write code like “__asm int 3”. But there is one more, less known mechanism to create interrupts during debugging – __debugbreak(). This is an intrinsic function of the VisualC++ compiler defined in vc/include/intrin.h which actually has the same functionality as int 3. Unlike int 3, this function is cross-platform. The Win32 function DebugBreak() has a similar functionality.

64 位版本的 Visual c + + 编译器不支持内联汇编,所以你不能写 __asm int 3 这样的代码。但是还有一个,不太为常人所知的机制在调试期间创建中断 — — __debugbreak() 。这是定义在 vc/include/intrin.h 中的 VisualC + + 编译器内部函数,它具有 int 3 相同的功能。不像 int 3 ,此功能是跨平台的。Win32 函数 DebugBreak() 有一个类似的功能。

#include <intrin.h>#include <stdio.h>int main(){ __debugbreak(); PRintf("hello, world!/n"); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表