查看: 2203|回复: 1

[其他] 每天解决一个问题35-3:调试时怎么知道执行的位置

[复制链接]
  • TA的每日心情
    擦汗
    2022-3-3 09:56
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    106

    主题

    836

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1527
    最后登录
    2023-6-12
    发表于 2015-9-28 20:05:50 | 显示全部楼层 |阅读模式
    背景
    C有串口调试的时候,总是自己在脑子里想程序执行到哪儿了,要是能自己输出就好了。

    解决
    一般可以自己加上printk的函数,自己数好了行数,写上文件名,打印出来,但这样没有统一性,每次都要重写字符串。
    输出文件名与行数要用到C语言中的几人宏定义。
    __FILE__  和 __LINE__
    __FILE__ 这是个字符串,当前程序文件名的字符串
    __LINE__这个是当前行号的整数
    可以用printf函数在串口输出
    1. printf(”file is: %d\n”, __FILE__);
    2. printf(”line is:%d\n”, __LINE__);
    复制代码


    延伸
    除了这两个宏以外,还有几个,这样找Bug,调试真是方便好多了。
    __DATE__ 包含当前日期的字符串
    __STDC__  如果编译器遵循ANSIC标准,它就是个非零值
    __TIME__ 包含当前时间的字符串
    大家可以加到程序中试试啊。
    我知道答案 目前已有1人回答
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-29 10:01:19 | 显示全部楼层
    学习了,谢谢分享
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-11-5 03:43 , Processed in 0.140393 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表