开发者社区> 问答> 正文

请问,打断点哪里是怎么判断要加在哪里。例如您上次上课讲的 是加在 exec_simple_query

请问,打断点哪里是怎么判断要加在哪里。例如您上次上课讲的 是加在 exec_simple_query 上,这个是怎么定的?

展开
收起
云上静思 2022-07-01 11:23:33 661 0
1 条回答
写回答
取消 提交回答
  • 设置断点的原理是当程序运行到设置断点的地方会停下来,便于我们继续跟踪、查看相关变量装填、调试。在哪里设置断点要根据情况而定,一些经验如下:

    1. 保证设置断点的函数会被调用到,函数没有调用到就不会停下来,那设置了断点也没意义了。

    2. 尽量接近你的目的函数,如果你通过查看日志,已经知道了是某个函数出错了,可以直接在该函数设置断点,帮助跟踪定位问题。

    3. 尽量不设置在被大量调用的函数上,否则会不停的停到该断点上,会干扰调试。有时出问题时,在日志中可以看到问题函数,如果该函数会被调用到很多次,可以通过设置条件断点减少干扰。如 b src/main.cpp:127 if cnt==10

    4. 课上举例使用的exec_simple_query函数断点,因为一般的SQL都会进入,主要为了更好的给大家介绍SQL的执行流程,但一般情况问题发生的调用都比较深,最好先确定大致的问题函数再设置断点,效率会更高。

    5. 另外就是一些特殊情况,如启动流程、backend进程启动的情况、各种辅助进程的问题,需要找到对应程序的入口和对应的进程ID再进行调试。

    此答案来自钉钉群“PG|POLARDB技术进阶”

    2022-07-01 12:32:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载