在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一款精小調試支持庫:dbuglib

嵌入式與Linux那些事 ? 來源:嵌入式與Linux那些事 ? 2023-04-17 14:01 ? 次閱讀

嵌入式開發過程中,調試是必不可少的一個環節。怎樣調試才能快速定位代碼的問題呢?方法有很多,今天給大家分享一款精小調試支持庫:dbuglib.

概述

ulog日志記錄庫是一個精小的靜態日志記錄庫。內部很多功能均由宏定義來實現。用戶可以修改日志的級別用于過濾特定級別的日志。

文件

ulog.h:定義了各種日志記錄級別和日志記錄宏

ulog.c:提供了內存打印等接口函數

ASSERT.h:提供了用戶可定義的斷言宏支持

VS文件夾:VC上位機測試示例

MDK文件夾:MDK下位機測試示例

日志級別

ulog支持5種日志記錄級別,可在ulog.h文件中修改LOG_CFG_LEVE宏定義來定義日志的記錄級別。

G_DEBUG:調試日志級別,用來記錄最詳細的調試信息和執行步驟

G_TRACE:跟蹤日志級別,用來記錄重要的跟蹤信息

G_WARNG:警告日志級別,用來記錄一些警告信息

G_ERROR:錯誤日志級別,用來記錄嚴重的錯誤信息

G_NONE:不做任何日志記錄

示例1:將LOG_CFG_LEVE配置為G_WARNG級別,則只會顯示G_WAGNG和G_ERROR兩個級別的日志記錄,其他的記錄級別較低將不被顯示 示例2:配置為G_NONE級別將禁用日志記錄功能

定義日志記錄樣式

在ulog.h文件中定義了LOG_FUN宏,用戶可以對其修改來改變日志的打印樣式

// 定義打印樣式
#define LOG_FUN(LEVESTR,format, ...)       
    LOG_PRINTF("["LEVESTR"] <"__FILE__": %d"">: " format "
",__LINE__,##__VA_ARGS__)

使用方式

    ASSERT_MSG(0, "test");
    uLOG(G_DEBUG,"error:%d",123);
    uLOG_MEM(G_DEBUG, randbuff, 125, "error:%d",586);

打印數據如下:

[G_DEBUG] : error:123
[G_DEBUG] : error:586
00000000: 29 23 BE 84 E1 6C D6 AE 52 90 49 F1 F1 BB E9 EB  )#...l..R.I.....
00000010: B3 A6 DB 3C 87 0C 3E 99 24 5E 0D 1C 06 B7 47 DE  ...<..>.$^....G.
00000020: B3 12 4D C8 43 BB 8B A6 1F 03 5A 7D 09 38 25 1F  ..M.C.....Z}.8%.
00000030: 5D D4 CB FC 96 F5 45 3B 13 0D 89 0A 1C DB AE 32  ].....E;.......2
00000040: 20 9A 50 EE 40 78 36 FD 12 49 32 F6 9E 7D 49 DC   .P.@x6..I2..}I.
00000050: AD 4F 14 F2 44 40 66 D0 6B C4 30 B7 32 3B A1 22  .O..D@f.k.0.2;."
00000060: F6 22 91 9D E1 8B 1F DA B0 CA 99 02 B9 72 9D 49  ."...........r.I
00000070: 2C 80 7E C5 99 D5 E9 80 B2 EA C9 CC 53           ,.~.........S

以上為程序的使用示例,說明如下:

uLOG:指定日志級別和相應的字符串,其支持printf類似的轉移修飾符

uLOG_MEM:可打印指定的內存數據,同樣需要指定日志級別,

ASSERT:該宏當參數為假時會停止程序,并打印顯示當前導致斷言的文件和行號

ASSERT_MSG:與ASSERT相同,只不過多了個字符串參數,可以顯示一些信息。

移植

該庫編寫時使用了一些C99特性,所以編譯器必須支持C99標準。已經在VS2015和MDK5.0中測試,均可正常工作。移植時必須定義LOG_PRINTF宏到實際的打印函數,還必須定義LOG_PUT_CHAR宏到實際的字符輸出函數:

// 字符輸出函數
#define LOG_PUT_CHAR(C) putchar(C)
// 日志記錄接口
#define LOG_PRINTF(format, ...) printf(format, ##__VA_ARGS__)

開源地址:

https://gitee.com/git-lib/dbugLib-Prj

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5143

    文章

    19561

    瀏覽量

    315443
  • 調試
    +關注

    關注

    7

    文章

    608

    瀏覽量

    34545
  • 代碼
    +關注

    關注

    30

    文章

    4891

    瀏覽量

    70308
  • 上位機
    +關注

    關注

    27

    文章

    961

    瀏覽量

    55635
  • 日志
    +關注

    關注

    0

    文章

    143

    瀏覽量

    10831

原文標題:分享一款精小調試支持庫:dbuglib

文章出處:【微信號:嵌入式與Linux那些事,微信公眾號:嵌入式與Linux那些事】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一款基于幀捕捉的開源圖形調試器應用設計

    支持,并且也支持 PVRTC壓縮格式。 RenderDoC是什么? RenderDoc是一款基于幀捕捉的開源圖形調試器,它遵從MIT協議,涵蓋了
    的頭像 發表于 04-03 09:13 ?8610次閱讀
    <b class='flag-5'>一款</b>基于幀捕捉的開源圖形<b class='flag-5'>調試</b>器應用設計

    一款可以顯示曲線的WIFI調試助手

    一款可以顯示曲線的WIFI調試助手
    發表于 08-26 16:34

    介紹一款運行在PC機上的圖形化在線調試工具

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔文章目錄前言、簡介二、特點三、安裝四、使用說明總結前言FreeMaster為NXP公司為用戶提供的一款運行在PC機上的圖形化在線調試
    發表于 07-14 06:25

    一款支持Lua編程的RTOS

    單片機開源項目開源逆變器wolfBoot 開源的安全啟動bootloaderOpenBLT 開源的bootloaderRTOSLua-RTOS-ESP32是一款支持Lua編程的RTOS,目前支持ESP32,ESP8266和PIC
    發表于 08-06 07:20

    一款基于Java實現的小巧而強大的關系型數據

    H2 是一款基于 Java 實現的小巧而強大的關系型數據支持嵌入式、客戶端/服務器以及混合部署模式。H2 數據適合嵌入小型應用程序、元數據管理、快速應用開發和測試、內存數據
    發表于 10-27 06:12

    用最新LL開發一款IOT產品記錄

    最近使用STm32G031K6做一款IOT產品,選擇了用最新LL進行開發,因為知其那對LL了解很少,所以開始的時候踩了很多坑,為防以后繼續踩坑,現在做個記錄。GPIO初始化:vo
    發表于 01-26 07:39

    一款好用的串口調試軟件ComMonitor

    電子發燒友網站提供《一款好用的串口調試軟件ComMonitor.exe》資料免費下載
    發表于 07-09 11:19 ?22次下載

    NetAssist_一款較為方便的TCP/UPD調試助手

    一款較為方便的TCP/UPD調試助手,能夠后順利進行TCP/UDP協議的調試以及數據的傳送。
    發表于 02-22 18:12 ?52次下載

    一款支持LORA-4G的智慧盒子

    一款支持LORA-4G的智慧盒子
    發表于 05-08 10:21 ?26次下載

    一款超級好用的數據客戶端工具

    作者:atzuge 鏈接:https://www.cnblogs.com/zuge/p/7397255.html 最近被同事案例了一款數據庫客戶端工具:DataGrip,大愛! 其實,這個標題的話
    的頭像 發表于 08-25 16:03 ?2683次閱讀

    H2:一款基于 Java 的嵌入式關系型數據

    H2 是一款基于 Java 實現的小巧而強大的關系型數據支持嵌入式、客戶端/服務器以及混合部署模式。H2 數據適合嵌入小型應用程序、元數據管理、快速應用開發和測試、內存數據
    發表于 10-20 19:06 ?1次下載
    H2:<b class='flag-5'>一款</b>基于 Java 的嵌入式關系型數據<b class='flag-5'>庫</b>

    一款支持Sparkplug協議的MQTT網關

    一款支持Sparkplug協議的物聯網網關
    發表于 01-25 10:49 ?1055次閱讀
    <b class='flag-5'>一款</b><b class='flag-5'>支持</b>Sparkplug協議的MQTT網關

    一款支持WiFi的體重秤

    電子發燒友網站提供《一款支持WiFi的體重秤.zip》資料免費下載
    發表于 02-08 09:43 ?2次下載
    <b class='flag-5'>一款</b><b class='flag-5'>支持</b>WiFi的體重秤

    一款專業且全面的嵌入式開發調試工具

    不知道大家平時做嵌入式開發時用調試工具進行調試,今天給大家分享一款專業且全面的嵌入式調試工具集:Micro-Lab。
    的頭像 發表于 04-15 14:10 ?1456次閱讀

    一款數據庫自動化提權工具

    一款用Go語言編寫的數據自動化提權工具,支持Mysql、MSSQL、Postgresql、Oracle、Redis數據提權、命令執行、爆破以及ssh連接等等功能。
    的頭像 發表于 07-19 14:57 ?995次閱讀
    <b class='flag-5'>一款數據庫</b>自動化提權工具
    主站蜘蛛池模板: 不卡一级毛片免费高清 | 另类激情亚洲 | 亚洲精品资源在线 | 色偷偷av男人的天堂 | 久久久久免费观看 | 国产情侣出租屋露脸实拍 | 天天射天天干天天插 | 亚洲视频一区二区在线观看 | 色丁香在线视频 | 美国一级毛片片aa久久综合 | 一卡二卡三卡四卡无卡在线 | 直接看黄的网站 | 欧美性幼 | 四虎影院免费观看 | 天堂资源在线观看 | 99久久99久久免费精品蜜桃 | julia一区二区三区中文字幕 | 亚洲一区二区影院 | 免费任我爽橹视频在线观看 | 中文天堂最新版在线精品 | 免费美剧在线观看 | 日本大片网| 免费看黄在线观看 | 色天天综合色天天天天看大 | 国产女主播精品大秀系列在线 | 久久精品乱子伦免费 | 国产gav成人免费播放视频 | 亚洲狼色专区 | 台湾三级毛片 | 97成人免费视频 | 国产婷婷色一区二区三区 | aaa亚洲 | 91中文字幕在线视频 | 日本成人黄色网址 | 在线视频免费观看 | 激情文学亚洲色图 | 久久亚洲aⅴ精品网站婷婷 久久亚洲成人 | 午夜视频免费国产在线 | 四虎国产永久在线观看 | 欧美精品一级 | 天天视频国产免费入口 |