dbg-macro:C++代码调试小工具
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++代码调试小工具相关推荐
- 【移动端debug-6】如何做一个App里的web调试小工具
原文链接:如何做一个App里的web调试小工具 我们知道现在hybrid app非常流行,在这样的app里,h5页面是应用非常广泛的.相对于以往在pc端开发的网页,放在app里的网页由于无法直接使用桌 ...
- 微信开发调试小工具进化→微信用户发送信息模拟器发布!——这标题起真是好数码暴龙的说...
直接说正题吧.最近在做微信第三方服务器.在模拟用户发过来的请求方面,网上流传着一个"微信开发调试小工具",谁做都不知道了.反正我觉得那个东西看起来挺不爽的,因为其信息发送类型不是很 ...
- php执行跟踪_PHP 代码调试跟踪工具 Ytrace
Ytrace是一个PHP代码调试跟踪工具,通过将PHP代码执行过程记录到文件中,再通过webui界面展示出来,并且支持单步调试的方式去查看执行过程. 主要特性: 可以可视化的看到源码文件哪些行被执行了 ...
- ios代码混淆小工具
一 绪言 写在前面的话:之前做了五年ios开发,现在转了开发方向(数据科学/大数据),今天帮以前ios开发小组的同学,写了一个ios代码混淆小工具,下面介绍下. 这种方式不是最佳方案,更好的方案是c ...
- 代码翻译小工具——后续
初衷 之前根据需要开发了一款*<全局钩子--代码翻译小工具>*的文章,后续收到了一些有建议性的反馈和在使用中的一些感受,所以做了一些升级. README!!! 因为: 使用时会因为网络问题 ...
- linux adb 远程调试工具,彻底摆脱数据线——远程ADB调试小工具开发过程记录
前排提示 本文中所描述工具只在ROOT过的设备上有效,如果不感兴趣的朋友可以点赞后退出了,也可以去github给我点个星星,源码地址在这里 写在开始前 每次重启测试机都要连接usb才能开始远程adb调 ...
- Flash3D的X,Y,Z坐标系调试小工具
该工具来源于Adobe的官网,本处只是做个记录,需要源文件的同学可以去官网下载,我会给出地址 源文件地址:http://download.macromedia.com/pub/developer/ac ...
- html计时节日,RIPRO美化-新年/高考/节日倒计时代码(小工具)
后台自定义HTML 添加如下代码,效果看---->>> 代码如下: 2 0 2 0 color=#8C0073>年 - 新 color=#4700B8>年 倒 计 时 1 ...
- 这些小工具让你的Android 开发更高效
在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vy ...
最新文章
- 全浏览器兼容的DIV拖动效果
- 常用jQuery ajax代码片段
- 武汉工程大学认识实习报告计算机,武汉工程大学化工认识实习报告
- KVO方式监听数组的变化动态刷新tableView
- UITextField总结--博主总结的真好
- SpringBoot 2.0 + 阿里巴巴 Sentinel 动态限流实战
- 《深入理解计算机系统》读书笔记一
- C++ primer 详解(第三章)
- Linux - Sysstat [ All-in-One System Performance and Usage Activity Monitoring Tool For Linux]
- 使用相对长度单位rem布局网页内容
- mysql导入三个基本表_mysql 基础导入导出
- 基础知识(七)opencv、python、人脸框检测
- php mysql cpu100_mysql进程占服务器cpu100%的解决方法
- iview 远程搜索选择器方法使用,选择之后清空选择的项
- JavaScript浏览器对象Window对象常用方法(3)
- 【深度学习】使用Keras开发的流程概述
- Redis入门小案例
- VS2008的绿色精简版,只有VC2008部分
- ubuntu desktop 12 lts 安装 vmplayer 问题
- pdf文件过大怎么办?3种免费压缩PDF的方法
热门文章
- 真正爱一个人,是可以无私的付出
- 计算机拨号测试在哪,电脑拨号设置在哪里设置
- 前端编程编辑器都有哪些 ?
- 利用windowManager在所有窗口之上填出一个界面,类似来电界面。
- iSpiik产品说:微信8.0 炸弹爆炸了~
- 使用QQ邮箱接收邮件报警设置步骤
- 学生选课系统——数据库应用项目
- 【汇正财经】股票和债券的区别有哪些?哪个风险比较小?
- python报错Unhandled error in Deferred: 2018-07-17 16:24:17 [twisted] CRITICAL: Unhandled error in Defe
- uniapp 调用手机相机拍照实现图片上传