You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++Builder 12.1 CE调试器StepOver(F8)异常如何解决?

解决C++Builder 12.1 CE中Step Over(F8)意外进入函数实现的问题

针对你遇到的F8(Step Over)跳过代码时意外进入UnicodeString::Pos这类系统函数实现的问题,可以通过以下几个步骤解决:

  • 开启"跳过系统代码"调试器设置
    打开Tools > Options > Debugger > General,勾选Skip System Code选项,同时确保Enable Debugging of System Code处于未勾选状态。这个设置会让调试器自动忽略VCL/RTL的系统代码实现,只在用户编写的代码间单步跳转。

  • 检查项目调试信息配置

    1. 进入Project > Options > C++ Compiler > Debugging,将Debug information设置为DWARF with separate .dwo files(C++Builder 12推荐的调试格式);
    2. 切换到Linker > Debugging,确认Include debug information已勾选,保证调试符号正确生成,让调试器能准确区分用户代码和系统代码边界。
  • 添加函数到调试跳过列表
    如果个别系统函数仍被意外进入,可以:

    • 调试时右键点击调用的函数(比如Pos),选择Add to Skip List;
    • 或者手动在Tools > Options > Debugger > Skip List中添加函数全名,例如System::UnicodeString::Pos,后续F8会自动跳过该函数的实现。
  • 清理重建项目
    执行Project > Clean清除旧的编译产物和调试符号,然后选择Project > Rebuild重新生成项目,避免旧符号导致的调试异常。

  • 调整RTL链接方式
    打开Project > Options > Packages > Runtime Packages,如果勾选了Link with runtime packages,确保对应的RTL包带有正确调试符号;若不需要动态包,可取消勾选改为静态链接RTL,能减少调试器误进入系统代码的情况。

内容的提问来源于stack exchange,提问作者Claude Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 00:42:09