首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我可以使用gdb编辑代码行吗?在同一个调试会话中,是否也可以保存为实际的源文件和头文件?linux

可以使用gdb编辑代码行。在gdb调试会话中,可以使用gdb提供的编辑命令来修改源代码。例如,可以使用"edit"命令来编辑当前断点所在的源文件,或者使用"list"命令查看源代码并进行编辑。

在同一个调试会话中,gdb也可以保存实际的源文件和头文件。可以使用"gdb"命令来启动gdb调试器,并使用"file"命令指定要调试的可执行文件。gdb会加载该可执行文件的符号表信息,包括源文件和头文件的路径。在调试过程中,可以使用"gdb"命令来查看和修改源文件和头文件,并使用"save"命令将修改后的文件保存到磁盘上。

需要注意的是,gdb是一个调试器工具,主要用于调试程序,而不是作为代码编辑器。如果需要进行大量的代码编辑工作,建议使用专业的代码编辑器或集成开发环境(IDE),如Visual Studio Code、Eclipse、IntelliJ IDEA等。这些工具提供了更丰富的代码编辑功能和更友好的用户界面,能够提高开发效率。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入浅出GDB调试

但是实际应用GDB 更常用来调试C和C++程序。虽然说Linux系统下我们可以借助诸多集成开发工具来完成程序编写和调试,但实际上,调试C/C++程序一定是直接或者间接使用GDB完成。...为什么要有GDB 我们开发程序过程,应该很少会有一次就编译通过吧,有时候即便是写了短短几十行代码,都难免会有一些小疏忽,更何况是几千上万甚至更大代码,反正开发几乎每次写完程序都会经过反复调试...你可能通过尝试后会说,不加gcc -g 选项能进入gdb调试,确实是这样,但是进入gdb并不代表就可以调试,比如下面 我们不加 -g 编译一个源文件,并启动gdb 进入gdb后我们发现,使用...(3)多线程调试 ① 首先,运行 ttt 可执行文件,这里会显示主进程 ID ② 然后用 SecureCRT 克隆会话或在 Linux 下直接打开一个新终端,另一个会话查看进程 ID 查看主线程线程树...但是实际上,熟练掌握 gdb 会对调试程序本身产生更深刻理解,可以大大提高程序调试水平。如果这篇文章大家觉得有帮助,可以关注 Linux 专栏,里面有更多 Linux 相关优质文章。

14110

Linux C编程之一:Linux下c语言开发环境

1、开发环境构成   编辑器:VI;   编译器:选择GNU C/C++编译器gcc;   调试器:应用广泛gdb;   函数库:glibc ;   系统头文件:glibc_header...; 2、安装Linux时需要注意事项   安装时选上“程序开发”“开发工具”,就可以自动安装gcc/gdb;   若想开发图形界面,还需要选上GNOME/KDE软件开发。...假如用户安装过程少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装LinuxC开发语言环境。...7、Linux下C程序开发过程:   (1)使用vi工具编辑写源程序;   (2)保存为*.c;   (3)使用gcc编译成二进制可执行文件;   (4)..../a.out执行(当gcc没有用-o选项指定可执行文件名时);   (5)有问题可以使用gdb进行调试; 8、第一个程序:Hello.c 1 2 3 4 5 int main(int args,char

10.7K01
  • OpenRestyNginx Lua服务远程调试方法

    很多Nginx Lua程序员入门过程中会遇到一个问题就是选择编辑器IDE,其实Lua编辑器IDE过去流行也有几种,但大多数都被人遗忘了,如果只是做纯Lua代码语法检查,代码补全,很多IDE都可以做到...而可以在线调试Nginx程序,设置断点可视化IDE,那应该ZeroBraneStudio这个编辑器,低层利用Lua Socket进行通信,可以可视化IDE,某句Lua代码,比如ngx.say("...Nginx/OpenResty下断点进行调试的人不会太多,环境配置就比较麻烦,而且生产环境上Linux服务器,部署XWindow意义不大,更多是本地调试,远程同步代码,现在找还可以找到之前在网上写这个调试过程教程...可以PowerShell中使用SSH登录,测试上述是否成功: ?...接下来需要对VSCodedebuggee进行配置,在对应工作区launch属性中直接配置即可。实际工作,我们可以针对不同调试模式使用不同debuggee配置。

    5.4K20

    SDNLAB技术分享(五):浅谈Open vSwitch移植

    3、执行编译步骤(在编译过程可能会出现各种错误,可能不会有错,取决于你自己机器是否安装Open vSwitch所依赖库) 本想把一些错误记录下来,拿出来和大家分享一下,可是编译过程中比较走运...如果有人需要移植ovsdb-server可以参考上面过程,过程相似。 四、编译参数 假设我们移植完所有源文件和头文件,接下来就需要编写makefile。...之前博客中有一篇介绍main函数,里面会涉及到gdb调试,你可以参考一下。但是gdb调试多线程时候 需要特别注意 2、日志。 对于多线程、多进程ovs,日志特别重要。...Q9:如果想调试比较靠后过程一段代码(可能已经不是main函数所在文件代码),比如说是匹配过程代码等,是否gdb可以直接调试操作?...A9:一样可以调试,你按照函数名进行断点调试 Q10:gdb调试文档在哪里?

    1.8K90

    Linux C编程之一:Linux下c语言开发环境

    1、开发环境构成 编辑器:VI; 编译器:选择GNU C/C++编译器gcc; 调试器:应用广泛gdb; 函数库:glibc ; 系统头文件:glibc_header; 2、安装Linux时需要注意事项...安装时选上“程序开发”“开发工具”,就可以自动安装gcc/gdb; 若想开发图形界面,还需要选上GNOME/KDE软件开发。...) 是GNU推出多平台编译器,以下是gcc支持编译一些源文件后缀及其解释 .c后缀 c语言源代码文件 .h后缀 是程序所包含文件 .o后缀 是编译后目标文件 例:gcc -o hello...假如用户安装过程少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装LinuxC开发语言环境。...7、Linux下C程序开发过程: (1)使用vi工具编辑写源程序; (2)保存为*.c; (3)使用gcc编译成二进制可执行文件; (4).

    7.7K40

    C编程之一:Linux下c语言开发环境

    1、开发环境构成 编辑器:VI; 编译器:选择GNU C/C++编译器gcc; 调试器:应用广泛gdb; 函数库:glibc ; 系统头文件:glibc_header; 2、安装Linux...时需要注意事项 安装时选上“程序开发”“开发工具”,就可以自动安装gcc/gdb; 若想开发图形界面,还需要选上GNOME/KDE软件开发。...CCompiler) 是GNU推出多平台编译器,以下是gcc支持编译一些源文件后缀及其解释 .c后缀 c语言源代码文件 .h后缀 是程序所包含文件 .o后缀 是编译后目标文件 1...假如用户安装过程少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装LinuxC开发语言环境。...7、Linux下C程序开发过程: (1)使用vi工具编辑写源程序; (2)保存为*.c; (3)使用gcc编译成二进制可执行文件; (4).

    3K00

    深入浅出GCC编译器

    .ii C++源文件预处理后生成文件 .S 预编译后汇编源文件 补充一下C++源文件后缀名,通过man可以查到 可以看到,我们上面并没有列出可执行文件后缀,原因是,Linux,可执行文件并没有特定后缀...这里再次强调,Linux,可执行文件并没有特定后缀,Linux主要通过文件权限来判断文件是否可执行,只要权限是可行,那么这个文件就是可执行,和他什么后缀,什么名称没有关系。...libxxx.so 或 libxxx.a ,所以这个参数使用方法是直接加库名 -lxxx ,具体使用方法将在Linux专栏另一篇文章《自己动手做动态库与静态库》详细介绍。...可以看到,加了 -g 选项后,文件变大了,这是因为里面包含了调试所用信息,关于 -g 选项更多知识和 gdb 调试相关讲解,将在Linux专栏另一篇文章《GDB调试器》详细介绍。...实际上,main函数没有return语句至少应该提示警告信息,甚至VS,这个文件直接就无法通过编译且直接报错

    24610

    Windows下使用VS Code搭建英伟达CUDA开发环境

    创建编译任务: VS Code,你需要创建一个编译任务来构建CUDA程序。这可以通过创建`tasks.json`文件来完成,该文件位于`.vscode`目录下。...对于复杂GPU调试,你可能需要考虑使用NVIDIA Nsight或在Linux系统上使用VS Code进行远程调试。 7....为了验证Windows下基于VS CodeCUDA开发环境是否搭建成功,你可以编写并运行一个简单CUDA程序,例如矩阵加法。...要运行这段代码,你需要在VS Code创建一个新工作区,将上述代码保存为`.cpp`文件,然后根据之前指导配置`tasks.json`和`launch.json`。...确保`tasks.json`编译命令能够正确识别你CUDA源文件,并生成可执行文件;同时,`launch.json`应正确配置,以便在调试模式下运行生成可执行文件

    1.4K20

    linux 编译安装GCC4.9.3(完整版)「建议收藏」

    /contrib/download_prerequisites 做好上面的准备就可以configure了,建议另建一个目录来存放编译文件,默认安装目录是 /usr/local/ 可以使用 –prefix...,尝试使用root用户或者root权限编译 编译过程很慢,一切顺利的话,取决于你配置40分钟-1个小时后再来看结果吧,用公司16核服务器编译了20分钟 第三步 .bashrc配置库文件和头文件路径...enable-checking=release --enable-languages=c,c++ --disable-multilib 线程模型:posix gcc 版本 4.9.3 (GCC) ---- 如果在调试过程某些库无法定位到源文件...看了其他人教程,都没有提到这一点,特此写这篇文章算是加深记忆和便于以后查看,请继续看下一步 ---- 第五步 升级完gcc还需要升级gdb!!!...因为版本不匹配导致调试时候 print变量提示找不到符号,以及其他莫名其妙问题… 这里选择安装时候gdb-7.9 ,安装gdb需要4个组件 ,python,python-devel ,texinfo

    1.6K20

    使用GDB调试Linux内核

    GDB可以让你在被调试程序执行时看到它”内部“情况,观察程序特定断点上状态,并逐行运行代码GDB还提供了“远程”模式,使用GDB协议通过网络或串行设备与被调试程序进行通信。...类似的,Linux内核开发者可以使用GDB远程模式,与调试应用程序几乎相同方式来调试Linux内核。...KGDB是Linux内核代码调试器,你可以使用GDB作为KGDB前端,我们熟悉且功能强大GDB调试界面调试内核。...我们可以使用QEMU/KVM虚拟机作为目标机器,让待调试内核运行在虚拟机,然后宿主机上运行gdb,连接到虚拟机KGDB。...写在最后 本机搭建Linux内核调试环境步骤有点繁杂,但使用GDB调试内核,会成为我们学习内核利器,进程管理、内存管理、文件系统,对源码有什么困惑就可以debug一下。 Enjoy it!

    1.3K10

    Linux GDB常用命令一栏

    有的时候输入quit后会出现相关提示:类似于“(y/n)”,输入y 2.显示和查找程序源代码 (1)list :显示10行代码,但是为什么没有显示成功呢?...(2)list 5,10:显示源文件第五行到第十行代码 (3)list t4.c:5,10:显示源文件第五行到第十行代码跳是含有多个源文件次序时使用; (4)list get_sum:显示get_sum...(5)list t4.c :get_sum:显示源文件t4.c第五行到第十行代码跳是含有多个源文件次序时使用; (6)如果在调试运行linux命令,则可以gdb提示符下输入shell命令...比如可以针对远程调试进行设置,可以用来设置gdb一行字符数等。 8.控制程序执行 (1)continue命令:让程序继续运行,直到下一个断点或者运行完为止。...单步执行一条语句使用next和step命令。通常一条语句有多条机器指令构成。    注意是:gdb一些命令可以简写,比如list可以用li来代替,continue命令可以用cont来代替。

    1.6K40

    Linux开发工具——gdb

    为了能够控制源码生成二进制程序时候加上-g选项,我们可以makefile文件中进行操作:   我们windows写代码时,调试工具大家多多少少都用过,但是为什么还分为debug版本和release...开始使用   我们有了带调试信息可执行程序之后,使用 gdb mybin,进入到调试页面:   当我们看到这样页面,就说明你已经开始调试了,下面来一一介绍gdb对应指令功能。...vs,我们可以禁用断点:   禁用断点之后,调试就不会从这里停下来了,gdb,我们也有禁用断点指令。 disable/enable命令 作用: 使能(禁用/开启)断点。...用法: until 行号 测试用例:   vs下,我们要想修改变量值,需要打开源文件,再进行修改,修改完之后再调试,而在Linuxgdb工具,可以实现 不用退出调试更改变量,使用set var命令即可...✈️ 总结 想要进行调试,需要再makefile文件里生成目标文件时加上-g选项,生成可执行程序可以使用readelf指令查看是否具有调试信息。

    19110

    Linux系统编程】Linux调试器——gdb 基本使用

    这篇文章我们继续学习Linux开发工具。 经过之前学习,我们已经能够Linux上编写代码、运行代码和通过git管理代码了。...但是如何在Linux上调式代码我们还不知道,所以今天要学Linux调试器——gdb 基本使用。 1. 准备工作及知识补充 那要使用调式器调式,首先我们得有代码,有可执行程序。...1.1 源文件和Makefile 所以,先来写一个代码,写一下Makefile 先写一个源文件test.c 然后写一下Makefile 然后我们来编译运行一下: 我们发现报错了 说是...我们说了Linux调式器是gdb,那如何使用gdb调式 如果你机器上没有gdb可以先安装一下:sudo yum install -y gdb 然后调式的话,第一步直接gdb+可执行文件名...实际开发,通常会使用 Debug 配置进行代码开发、调试和测试,以便于快速定位和修复问题。而在准备发布软件时,会切换到 Release 配置,以生成性能更高、体积更小最终可执行文件

    40410

    1.Win10+VsCodeCCPP编译环境搭建

    但是实际上CPP是不建议把字符串常量赋值给非常量字符指针(C语言中不会报错)。同样代码VScode选择clang编译就会出现警告。...VS Code是一个轻量级开源跨平台代码编辑器,可以运行在win,Mac OS以及Linux系统上,为各种常见语言(C/Cpp,Java,C#,Python,Go等)提供丰富扩展生态系统运行平台。...,可能出现问题,是校园网所以没下载下来,如果可以下载的话可以使用这种方式。...这一步文件管理器建立就可以了。 ? 建立.vscode配置文件夹。 VS Code文件管理器中找到新建文件按键。 ? 建立配置文件。..."MIMode": "gdb", // 指定连接调试器,可以gdb或lldb。但目前lldbwindows下没有预编译好版本。

    4.7K70

    使用vs2019进行Linux远程开发方法步骤

    通常,当我们开发Linux程序时有两种方案: Linux上直接编写程序并进行运行测试和调试 Windows或Mac OS X上借助工具进行远程开发 虽然自己是Linux环境上直接进行开发,但也有许多的人是...Visual Studio跨平台开发功能简介 从visual studio 2017开始微软推出了vs跨平台开发功能,你可以vs编辑代码,随后进行跨平台编译和远程调试,将原先我们需要手动完成工作进行了自动化...vs进行远程开发分为两步: 创建远程环境连接,随后让vs将远程环境系统头文件同步到本地(可以指定其他地方文件,后面会讲解),c++代码补全只需要头文件即可。...随后vs将会在consolegdb或gdbserver运行你程序,在此期间你可以充分享受vs debugger带来高效和便利。 经过上述步骤之后你就可以vs里调试自己编写跨平台程序了。...本地编写和远程调试 至此你已经可以vs编写面向Linux平台代码了,自动补全可以正常工作: ? ? 可以看到Linux文件和结构体都已经可以识别了。

    4.3K40

    Ubuntu 系统配置 VS Code C++ 开发环境

    VS Code 环境配置 VS Code 安装 安装 VS Code VS Code 安装 C/C++ Extension Pack 扩展组件,其他插件会附带安装 同时安装了 C/C++,Code...),可以为每个工作空间配置定制环境,可以配置默认环境。...}” 这样变量,“type”可以改成“shell”,不能任意; “label”是task名称,可以随意,但要与launch.json文件变量“preLaunchTask”设置一致; “command..., 运行调试时,debugger不会在源文件添加断点,设置为true时,调试会在main函数入口处等待。...配置补充 c_cpp_properties.json 想要进行更多配置,例如设置编译器路径、改变C标准等,可以创建一个c_cpp_properties.json文件使用 ctrl+shift+P 打开命令搜索

    92810

    Linux从入门到精通(九)——Linux编程

    5.2.2 编译阶段 gcc选项,-S,生成.s文件(作用:检查代码规范性、是否有语法错误等,以确定代码实际要做工作,检查无误后,就开始把代码翻译成汇编语言。)...只编译汇编不链接,生成目标文件.o-S只编译不链接,生成汇编代码-E只进行预处理,不做其他处理-g可执行程序包含标准调试信息,加了这个才可以gdb调试文件。...动态库文件: 编译链接时,没有把库文件代码加入到可执行文件执行时候去访问库文件,节省系统开销,生成文件小,后缀一般.so。...6.1 gdb 基本用法 ​ 需要调试程序,在编译时要使用调试选项。默认情况下,调试符号不会编译到程序调试之后,不需要重新编译程序。...gdb [可执行文件名] 出现 (gdb)#这里可以输入调试命令 注意:可执行文件编译时候,必须加入参数-g,才可以使用gdb 6.2 gdb 常用命令 进入gdb调试界面后,可以输入以下命令:

    2K30

    程序员C语言快速上手——环境准备篇(一)

    因此,我们采用一种折中更灵活方案,Windows上使用GCC编译器以及一些GNU工具链来模拟LinuxC语言学习体验,这样一来,我们既能使用熟悉Windows系统,能利用GNU工具链来学习...在这里插入图片描述 配置调试环境 实际上不配置调试环境一点不影响我们写代码,但是在学习C语言过程,借助调试功能可以帮助我们形象理解很多概念,而且调试功能对于我们查找BUG等问题非常有帮助。...实际上VS Code编辑器并不具备任何调试功能,调试功能是GNU工具链提供,它在我们之前安装MinGW-W64那个bin文件夹里面,它名字叫gdb.exe,如果大家之前环境配置Ok,那么可以cmd...在这里插入图片描述 如上图,不仅可以用鼠标查看,编辑器左侧面板会显示出当前已经执行过代码变量情况。此时,如想继续往下一执行,直接按一次【F10】代码就会往下再运行一行。 ?...在这里插入图片描述 除了快捷键,可以使用鼠标点击悬浮菜单红框键,它对应【F10】,其他控制键,大家自行探究。 编译代码 如果想直接运行写好代码可以使用鼠标右键菜单运行 ?

    95640

    Centos编译JDK8源码

    代码只有JVM等核心代码是用C/C++编写,一些类库还是Java编写,最后需要编译为class文件,这部分工作需要另外一个JDK来编译;网上说编译8JDK要用1.7用1.8可以编译通过...3.4 开始编译 make CONF=linux-x86_64-normal-server-slowdebug CONF参数是一个编译配置,我们可以配置不同编译参数,如一个用于生产不带调试信息,另一个带调试信息...5、调试 经过上述编译后,我们就可以GDB编译了,开发机GDB版本为9.1。.../build/linux-x86_64-normal-server-slowdebug/jdk/bin/java 运行gdb后设置调试参数: set args Hello 然后设置断点在入口main...函数: break jdk/src/share/bin/main.c:97 接下来就可以开始jdk源代码遨游了。

    1.1K10

    windows平台中使用vscode远程连接linux进行c++开发配置教程(内容详细适合小白)-2021-3-30

    可以windows平台上运行ssh客户端,linux系统运行ssh服务端,从而实现windows到linux 远程连接。...选择远程平台为linux 输入前面配置文件user用户对应登录密码 连接成功之后可以左下角看到连接标识。...最后,设置各个选项具体意义可以vscode官网进行查看,结合选项意义和实际项目需求即可完成设置。...若linux系统未安装gdb,则要先进行安装。左侧主菜单,选择“运行和调试” ,然后点击蓝色按钮,选择“ C ++(GDB / LLDB)”,此时vscode自动打开launch.json文件。...调试时在编辑顶部,将显示一个调试控制面板,可以进行单步、多步调试控制,同时在编辑器左侧会显示局部变量、监视变量和程序调用堆栈等信息。

    10.8K61
    领券