您可以在代码中添加“断点指令”。如果没有连接调试器,我所知道的大多数操作系统都会忽略断点。
对此使用什么指令取决于编译器和处理器,但是在大多数编译器中,都有“内部”或“内置”功能,例如DebugBreak();用于MS编译器以及__builtin_trap();gcc和相关功能。
编辑:这__builtin_trap();是一个坏主意,因为它将完全停止代码运行。而是使用内联汇编器:
inline void DebugBreak()
{
#if defined(X86)
__asm__ __volatile__("int 3");
#elif defined(ARM)
__asm__ __volatile__("bkpt");
#else
#error DebugBreak not defined for this architecture or no architecture defined.
#endif
}
Run Code Online (Sandbox Code Playgroud)
应该适用于x86和arm-您可能希望为架构选择宏使用“更好的名称”-我在不同的架构上所做的工作并不多,因此我没有确切记住正式名称是什么。
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |