dbg-macro

源代码地址:dbg-macro
dbg-macro是一个轻量级c++编写的c++代码调试器。使用起来特别方便,只需包含一个头文件即可。

特点

  • 易读,彩色输出。当输出不是一个交互式终端时色彩会被隐藏。
  • 可以打印文件名、行数、函数名以及原始表达式。
  • 为输出值增加了类型信息。(可以看到输出变量是什么类型)
  • 为容器、指针、字符串、枚举、STL设置专门的输出样式。
  • 支持C++11、C++14、C++17。
  • 可以使用在表达式内视。
  • 当包含dbg.h时,会有一个编译器警告问题。(别忘了移除)

安装

git clone https://github.com/sharkdp/dbg-macro
sudo ln -s $(readlink -f dbg-macro/dbg.h) /usr/include/dbg.h

如何编译dbg-macro源码

git submodule update --init
mkdir build
cd build
cmake .. -DCMAKE_CXX_STANDARD=17
make

运行测试

进入根目录中的tests文件夹,里面包含一些测试代码

这里我们使用demo.cpp进行测试。首先编译一下代码。

g++ -o demo demo.cpp


这个警告就是 “特点” 中提到的警告。
运行。

./demo


输出正常说明安装成功。

如何去掉上面提到的警告

办法一

这个办法是我自己想的,实现起来比较麻烦,不推荐使用。
编辑根目录的dbg.h代码,在第36行之后加入代码

#ifndef DBG_MACRO_NO_WARNING
#define DBG_MACRO_NO_WARNING
#endif

保存退出。
切换到build文件夹

cd build
make

编译好之后,重新编译代码,警告就会消失。

办法二

在编译源代码文件文件时候,加上flag:DBG_MACRO_NO_WARNING
具体实现:

g++ -o demo demo.cpp -DDBG_MACRO_NO_WARNING

这个办法实现比较简单,但是每次编译都要加。当然你也可以编写makefile文件,就没有这个麻烦了。

修改dbg.h源代码后重新链接到/usr/include

写了一个脚本relink_dbgmacro.sh

#!/bin/bash
sudo rm -f /usr/include/dbg.h
sudo ln -s $(readlink -f ./dbg.h) /usr/include/dbg.h

赋予权限

sudo chmod 777 relink_dbgmacro.sh

将这个脚本放在dbg-macro目录下,然后执行。执行完毕后就更新了dbg.h链接。

未完待续。。。

dbg-macro:C++代码调试小工具相关推荐

  1. 【移动端debug-6】如何做一个App里的web调试小工具

    原文链接:如何做一个App里的web调试小工具 我们知道现在hybrid app非常流行,在这样的app里,h5页面是应用非常广泛的.相对于以往在pc端开发的网页,放在app里的网页由于无法直接使用桌 ...

  2. 微信开发调试小工具进化→微信用户发送信息模拟器发布!——这标题起真是好数码暴龙的说...

    直接说正题吧.最近在做微信第三方服务器.在模拟用户发过来的请求方面,网上流传着一个"微信开发调试小工具",谁做都不知道了.反正我觉得那个东西看起来挺不爽的,因为其信息发送类型不是很 ...

  3. php执行跟踪_PHP 代码调试跟踪工具 Ytrace

    Ytrace是一个PHP代码调试跟踪工具,通过将PHP代码执行过程记录到文件中,再通过webui界面展示出来,并且支持单步调试的方式去查看执行过程. 主要特性: 可以可视化的看到源码文件哪些行被执行了 ...

  4. ios代码混淆小工具

    一  绪言 写在前面的话:之前做了五年ios开发,现在转了开发方向(数据科学/大数据),今天帮以前ios开发小组的同学,写了一个ios代码混淆小工具,下面介绍下. 这种方式不是最佳方案,更好的方案是c ...

  5. 代码翻译小工具——后续

    初衷 之前根据需要开发了一款*<全局钩子--代码翻译小工具>*的文章,后续收到了一些有建议性的反馈和在使用中的一些感受,所以做了一些升级. README!!! 因为: 使用时会因为网络问题 ...

  6. linux adb 远程调试工具,彻底摆脱数据线——远程ADB调试小工具开发过程记录

    前排提示 本文中所描述工具只在ROOT过的设备上有效,如果不感兴趣的朋友可以点赞后退出了,也可以去github给我点个星星,源码地址在这里 写在开始前 每次重启测试机都要连接usb才能开始远程adb调 ...

  7. Flash3D的X,Y,Z坐标系调试小工具

    该工具来源于Adobe的官网,本处只是做个记录,需要源文件的同学可以去官网下载,我会给出地址 源文件地址:http://download.macromedia.com/pub/developer/ac ...

  8. html计时节日,RIPRO美化-新年/高考/节日倒计时代码(小工具)

    后台自定义HTML 添加如下代码,效果看---->>> 代码如下: 2 0 2 0 color=#8C0073>年 - 新 color=#4700B8>年 倒 计 时 1 ...

  9. 这些小工具让你的Android 开发更高效

    在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vy ...

最新文章

  1. 全浏览器兼容的DIV拖动效果
  2. 常用jQuery ajax代码片段
  3. 武汉工程大学认识实习报告计算机,武汉工程大学化工认识实习报告
  4. KVO方式监听数组的变化动态刷新tableView
  5. UITextField总结--博主总结的真好
  6. SpringBoot 2.0 + 阿里巴巴 Sentinel 动态限流实战
  7. 《深入理解计算机系统》读书笔记一
  8. C++ primer 详解(第三章)
  9. Linux - Sysstat [ All-in-One System Performance and Usage Activity Monitoring Tool For Linux]
  10. 使用相对长度单位rem布局网页内容
  11. mysql导入三个基本表_mysql 基础导入导出
  12. 基础知识(七)opencv、python、人脸框检测
  13. php mysql cpu100_mysql进程占服务器cpu100%的解决方法
  14. iview 远程搜索选择器方法使用,选择之后清空选择的项
  15. JavaScript浏览器对象Window对象常用方法(3)
  16. 【深度学习】使用Keras开发的流程概述
  17. Redis入门小案例
  18. VS2008的绿色精简版,只有VC2008部分
  19. ubuntu desktop 12 lts 安装 vmplayer 问题
  20. pdf文件过大怎么办?3种免费压缩PDF的方法

热门文章

  1. 真正爱一个人,是可以无私的付出
  2. 计算机拨号测试在哪,电脑拨号设置在哪里设置
  3. 前端编程编辑器都有哪些 ?
  4. 利用windowManager在所有窗口之上填出一个界面,类似来电界面。
  5. iSpiik产品说:微信8.0 炸弹爆炸了~
  6. 使用QQ邮箱接收邮件报警设置步骤
  7. 学生选课系统——数据库应用项目
  8. 【汇正财经】股票和债券的区别有哪些?哪个风险比较小?
  9. python报错Unhandled error in Deferred: 2018-07-17 16:24:17 [twisted] CRITICAL: Unhandled error in Defe
  10. uniapp 调用手机相机拍照实现图片上传