作为当下一款非常流行的文本编辑器,Sublime Text 界面简洁、功能强大(提供有众多的插件)、还支持跨平台使用(包括 Mac OS X、Linux 和 Windows)。更值得一提的是在程序员眼中,Sublime Text 不仅仅是一个文本编辑器,更是一款好用的代码编辑器。《Sublime Text运行C和C++程序》一节中,给大家详细介绍了怎样使 Sublime Text 具备编译、运行 C、C++ 程序的能力。在此基础上,本节给大家讲解:如何为 Sublime Text 配备 GDB 调试环境,从而可以直接调试在 Sublime Text 中编写的程序?

为 Sublime Text 配备 GDB 调试环境,其本质是令 Sublime Text 具备调用 GDB 调试器的能力。也就是说,当我们需要调试在 Sublime Text 中编写的代码时,无需手动打开 GDB 调试器,Sublime Text 可以自行调用 GDB 调试器,并以当前文件作为调试对象打开 GDB,等待我们输入 GDB 调试指令。

注意,要想为 Sublime Text 配备 GDB 调试环境,则必须确认当前系统环境中已经安装好了 GDB 调试器。以 Windows 平台为例,打开命令行窗口并执行 gdb -v 命令,如果打印出 GDB 调试器的相关信息(如图 1 所示),则表明当前系统中已经安装好了 GDB。

如果当前系统环境未安装 GDB,Windows 平台的读者可阅读《Windows平台安装GDB调试器》一节;Linux 平台的读者可阅读《GDB下载和安装教程》一节。

Windows平台配置Sublime Text

在已安装好 Sublime Text 编辑器的基础上,为其配置 GDB 调试环境的过程如下(以调试 C 语言程序为例):1) 在 Sublime Text 的菜单栏中依次选择Tools -> Build System -> New Build System,此时会生成如图 2 所示的临时文件:

2) 将图 2 所示文件中的内容全部删除,然后将以下内容拷贝到文件中:

{    "cmd": ["gcc","-g","${file}","-o", "${file_path}/${file_base_name}"],    "file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",    "working_dir":"${file_path}",    "selector": "source.c",    "variants":    [        {            "name": "GDB_C",            "cmd": ["cmd", "/c", "gcc","-g", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "gdb", "${file_path}/${file_base_name}"]        }    ]}

如果读者想调试 C++ 程序,可直接将其中的 gcc 全部改成 g++ 即可。当然,这样配置的 Sublime Text 仅能调试普通的 C、C++ 程序,那些引入非标准库或者第三方库的程序,需要在 2 个 "cmd" 行中的 gcc 或者 g++ 命令中注明要使用的系统库。

拷贝完成后,按 Ctrl+S 组合键保存此文件,对于调试 C 语言程序的配置文件,我将其重命名为 gdb_c.sublime-build。由此,Sublime Text 就具备了调用 GDB 调试 C、C++ 程序的能力。以调试简单的 C 语言程序为例:

#include int main (){    char * url="http://c.biancheng.net/gdb/";    printf("%s",url);    return 0;}

读者可以将此示例程序拷贝到 Sublime Text 中,并为其命名以 .c 为后缀名的文件。在此基础上,在菜单栏中选择 Tools -> Build System -> gdb_c(即以我们自定义的方式编译指定文件),然后选择 Tools -> Build System,此时 Sublime Text 会弹出如下图所示的选项框:

可以看到,正如 gdb_c.sublime-build 文件配置的那样,这里显示了 2 个调试选项,第一个用于仅生成可供 GDB 调试的可执行文件,第二个选项不仅会生成可调式的执行文件,还会自动调用 GDB 并启动调试。例如,我们选择第二个选项,此时会进入 GDB 调试环境:

感兴趣的读者,可尝试使用第一个选项,其会在该程序文件同目录的位置,生成可供 GDB 调试的可执行文件。

Linux平台配置Sublime Text

Linux 平台配置 Sublime Text 的过程,和 Windows 平台配置 Sublime Text 的过程完全一致。唯一不同的一点在于,gdb-c.sublime-build 配置文件中的内容有所差异。以 Ubuntu 为例,其配置文件中的内容如下所示:

{    "shell_cmd":  "gcc -g \"$file_name\" -o \"$file_base_name\"",    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",    "selector": "source.c",    "working_dir": "$file_path",    "variants":    [        {          "name": "gdb_c",        "shell_cmd": "gcc -g \"$file_name\" -o \"$file_base_name\";gnome-terminal -x gdb \"$file_base_name\""        }    ]}

注意,不同的 Linux 发行版,调用命令行窗口的方式不同。以 Ubuntu 为例,使用 gnome-terminal -x 命令启动命令行窗口。

其它操作和在 Windows 平台上配置 Sublime_text 完全相同,这里不再重复赘述。

Mac OS X配置Sublime Text

Mac OS X 平台配置 Sublime Text 的过程,也和 Windows 平台配置 Sublime Text 的过程完全一致,但需要修改 gdb-c.sublime-build 配置文件中的内容:

{    "shell_cmd":"gcc -g \"$file_name\" -o \"$file_base_name\"",    "selector":"source.c",    "working_dir":"$file_path",    "variants":         [{             "name":"gdb_c",             "shell_cmd":"gcc -g \"$file_name\" -o \"$file_base_name\";open -a terminal.app /usr/local/bin/gdb"        }]}

读者需根据实际情况,调整 gdb 的存储位置(本机存储为 /usr/local/bin/gdb)。注意,根据此配置文件,当我们选用 gdb_c 选项调试程序时,其只能自行打开 Terminal 命令行窗口并启动 GDB 调试器,但无法立即调试目标程序,还需手动在 GDB 中借助 file 命令指定要调试的目标程序,例如:

(gdb) file /tmp/demo/main.exeReading symbols from /tmp/demo/main.exe...(gdb)

再次强调,启动 GDB 并不意味着可以立即调试程序,至于为什么,读者可阅读《gdb run(r)命令》一节做详细了解。

c++调试窗口不见了_Sublime Text配置GDB调试环境相关推荐

  1. 为DEV C++/CodeBlock配置gdb调试遇到的问题

    DEV C++和CodeBlock都只是一个IDE,不能编译调试,需要自己配置MINGW和gdb调试 1.MINGW 在这下载mingw-get-setup.exe安装即可. https://sour ...

  2. GNU 工具链调试信息分离和挂载:支持 GDB 调试 RELEASE 版本程序

    GNU 工具链调试信息分离和挂载:支持 GDB 调试 RELEASE 版本程序 一般地,release 版本的程序都不带调试信息,无法使用 gdb 调试. GNU 编译工具链和二进制工具链做法如下: ...

  3. gdb 调试_一文入门Linux下gdb调试(二)

    点击"蓝字"关注我吧 作者:良知犹存 转载授权以及围观:欢迎添加微信号:Conscience_Remains 总述     今天我们介绍一下core dump文件,Core dum ...

  4. sublime配置python开发环境_Sublime Text 配置Python3.7开发环境

    知道Python的大名很久了,由于太懒没有去研究过.不知什么原因今天想去探究一下,和我用的.Net有何区别,满足一下自己的好奇心.由于以前就知道Python是什么,可以用来做什么,就没有去看Pytho ...

  5. python运行py文件 sublime 快捷键_Sublime Text配置python以及快捷键总结

    测试 1.新建test.py文件,输入简单python语句,按Ctrl+B运行 注意:如果报错 can't find '__main__' module in '' 是因为没有保存文件,应先保存文件, ...

  6. windows 搭建python 虚拟环境 写程序_Sublime下配置python编译环境及搭建虚拟环境:(windows下大致相同)...

    1.编译环境配置import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0e ...

  7. Mac给Sublime Text 配置Python3开发环境

    Python2升级为Python3,并且保留所有版本,方法为:https://blog.csdn.net/BTUJACK/article/details/83821642 简单3步成功给Mac安装指定 ...

  8. sublime配置go环境_sublime Text3配置go编译环境

    Sublime Text 这里将介绍Sublime Text 3(以下简称Sublime)+ GoSublime + gocode的组合,那么为什么选择这个组合呢? 自动化提示代码,如下图所示 图1. ...

  9. sublime text 配置golang开发环境

    一.准备工作: 1.下载Go语言包: https://code.google.com/p/go/downloads/list 2.下载Git: https://code.google.com/p/ms ...

最新文章

  1. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者
  2. android 图片绑定按钮,Android编程实现给Button添加图片和文字的方法
  3. Pytorch上采样函数 包括interpolate
  4. jsp程序带mysql数据库_【web开发】:JSP连接Mysql数据库(非常详细,代码一看就懂)...
  5. 直播协议HTTP-FLV标准解读与技术实现
  6. java合并单元格同时导出excel
  7. Java中九大内置对象
  8. @ImportResource和@PropertySource两个注解的区别
  9. 抽象类继承 java_java继承抽象类
  10. fig, ax = plt.subplots(figsize = (a, b))解析 与 plt.subplot()函数解析
  11. 转 iOS socket
  12. Java 模块化技术演进和对现有应用微服务化的意义
  13. git学习笔记——廖雪峰git教程
  14. java开发接口文档_java之接口文档规范
  15. mysql计算同比和环比的区别_Mysql同比环比统计
  16. 拼多多API根据ID获取商品详情
  17. 时间序列分类05:滑动窗口处理时间序列分类数据
  18. python快递费用计算_python调用快递鸟api实现查快递
  19. ansys workbench中fluent划分网格出现如下错误:The mesh file exporter failed during translation.
  20. SCI/ISTP和EI论文检索号IDS number和收录号查询方法

热门文章

  1. 厉害了!他是 Facebook 开国元老,30 分钟解决 Instagram 服务器挂机难题
  2. C 语言未初始化的局部变量是多少?
  3. 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
  4. 多希望当年做工程师时我能明白这三个道理!
  5. 沙利文:2019Q4中国公有云市场份额:阿里云、腾讯云、华为云位列前三
  6. 金三银四网络面经之 DNS 详解!
  7. 技术开发者该如何开展小团队的微服务之路?
  8. Libra 骗局来了;嫦娥五号将利用 AI 确定登陆位置;GitHub 移除色情应用 DeepNude 的开源库 | 开发者周刊...
  9. 今日头条再次宣战腾讯!
  10. 惊慌 Android!使用 3D 打印的头像可破解多款手机