目录

代码调试断点不生效问题

问题现象

使用DevEco Studio开发工具调试代码的过程中,设置的断点不生效,尤其是在Native代码调试时,经常会碰到代码无法停在断点处的情况,影响代码开发调试效率。

背景知识

问题定位

  1. 当调试断点不生效时,首先应确认调试类型与调试代码是否匹配,确认方式参考设置调试代码类型。
  2. 当调试C/C++代码时,确认编译类型是否被设置成了Release,确认在模块级build-profile.json5文件"externalNativeOptions"配置项中,"arguments"参数配置中存在"-DCMAKE_BUILD_TYPE=Release"配置项,如下所示:
    "externalNativeOptions": {
      "arguments": "-DCMAKE_BUILD_TYPE=Release"
    }

    若存在,则表示此时编译类型被设置成了Release,会导致调试断点不生效。

  3. 当调试C/C++代码时,确认编译时是否剥离了符号表信息,即确认"cppFlags"参数是否存在"-s"配置,如下所示:
    "externalNativeOptions": {
      "cppFlags": "-s"
    }

    若存在,则表示编译时会剥离符号表信息,会导致调试断点不生效。

分析结论

修改建议