编写服务器端程序,很容易遇到Crash问题,比较幸运的是Linux提供了core file,保留了Crash的现场。有时候,根据当前的调用栈,并且打印出当前栈的变量就可以分析出crash的原因,但是,有时候看到调用栈却束手无策。下面就介绍自己通过GDB的几个命令的结合,发现一个crash的原因的过程 ...
分类:
数据库 时间:
2016-04-15 18:25:12
阅读次数:
255
C:\MinGW\bin(MinGW安装目录)下找到gdb.exe,双击执行:2.在NetBeans里,点击“调试”菜单下的“连接调试器”,找到gdb运行的那个进程,选择项目后,确定即可开始用gdb调试C程序
分类:
数据库 时间:
2016-04-14 22:44:37
阅读次数:
288
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX ...
分类:
数据库 时间:
2016-04-14 12:14:28
阅读次数:
214
一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello ...
分类:
数据库 时间:
2016-04-13 17:08:21
阅读次数:
209
Qt应用程序的调试可以通过DDD进行跟踪调试和打印各种调试或警告信息。DDD(Data Display Debugger)是使用gdb调试工具的图形工具,它安装在Linux操作系统中,使用方法可参考DDD的帮助文档。 AD:51CTO首届中国APP创新评选大赛正在招募>> Qt应用程序的调试可以通过 ...
分类:
其他好文 时间:
2016-04-13 00:06:27
阅读次数:
213
一.gdb常用命令:命令 描述backtrace(或bt) 查看各级函数调用及参数finish 连续运行到当前函数返回为止,然后停下来等待命令frame(或f)帧编号 选择栈帧info(或i)locals 查看当前栈帧局部变量的值list(或l) 列出源代码,接着上次的位置往下列,每次列10行list行号 列出..
分类:
数据库 时间:
2016-04-11 07:27:32
阅读次数:
184
如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器)。本文介绍如何下载安装CDB,并在Qt Creator配置之。 示例环境:Windows 8 x86 + V ...
exec*函数对应的系统调用会加载可执行程序到内存进行执行。本文将分析可执行程序加载的过程,包括可执行程序的个是ELF,动态链接以及静态链接相关内容,并通过gdb调试的方式展示该系统调用的执行过程。 ...
分类:
其他好文 时间:
2016-04-08 18:19:13
阅读次数:
126
实验过程 1.github上克隆相应的mengning/menu.git 2.测试menuOS,测试fork直接执行结果 3.配置调试系统,进入gdb调试,利用file linux-3.18.6/vmlinux和target remote:1234来配置加载初始调试环境 4.在linux内核进程创建 ...
分类:
系统相关 时间:
2016-04-03 10:13:42
阅读次数:
207
Gdb调试多进程程序 程序经常使用fork/exec创建多进程程序。多进程程序有自己独立的地址空间,这是多进程调试首要注意的地方。Gdb功能强大,对调试多线程提供很多支持。 方法1:调试多进程最土的办法:attach pid Attach是调试进程的常用办法,只要有可执行程序以及相应PID,即可工作 ...
分类:
数据库 时间:
2016-04-02 12:06:17
阅读次数:
231