一、GDB是GNU发布的程序调试工具。有三方面功能:1、启动被调试程序。2、让被调试程序在指定位置停住。3、当程序被停住时,可以检查程序状态(如变量值)。二、GDB调试步骤:1、编译生成可执行文件gcc -g hell.c -o hello2、启动GDBgdb hello3、在main函数处设置断点...
分类:
数据库 时间:
2014-07-16 19:47:46
阅读次数:
199
1、编译源代码C:MinGW\bin>gcc.exe -g -o program.exe program.c 编译选项上要加上“g”,这样生成的目标程序会含有调试内容,再用gdb调试的时候才能使用。显然加上“g”选项生成的应用程序会比不加的大,但两者运行时没有差别。2、启动调试C:MinGW\bi....
分类:
数据库 时间:
2014-07-14 00:56:40
阅读次数:
434
GDB常用命令 运行 run(简写r): 运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。 continue(简写c):继续执行,到下一个断点处(或运行结束) next(简写n): 单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体; step(简写s):单步调试如果...
分类:
数据库 时间:
2014-07-13 09:01:02
阅读次数:
252
无论是采用GDB调试impala或者尝试修改impala源码,前提都是需要本地环境编译impala,这篇文章详细的分享一下impala编译方法以及编译过程遇到的棘手的问题:前言:impala官方的git上其实是有impala编译的步骤的,但是在后来的git版本迭代中,被藏在了一个诡异的地方,http...
分类:
其他好文 时间:
2014-07-13 00:43:23
阅读次数:
785
st-link 在win8上的支持不太好,据说是因为 st-link 硬件没有数字签名,win8 强制要求硬件必须有数字签名。虽然平时还是用的盗版 jlink 比较多一点,但是手上这块 discovery 板子只有板载的 st-link。下载zadig 首先下载zadig,这是一个开源的win驱动,...
分类:
数据库 时间:
2014-07-12 14:47:00
阅读次数:
1285
一、gdb 多线程调试GDB多线程调试的基本命令。1. info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。(gdb) info threads 4 Thread 1099119552 (LWP ....
分类:
数据库 时间:
2014-07-11 22:13:21
阅读次数:
355
http://blog.chinaunix.net/uid-23193900-id-3184605.html1.什么是程序的调试? 程序调试的目的就是找出程序中隐藏的故障,校正那些不正常的指令,使程序能够正常工作。2.调试的类别 程序的调试有几种不同的级别。最高级别当然是编程人员通过自己肉眼观察和推...
分类:
数据库 时间:
2014-07-11 20:31:42
阅读次数:
303
最近在帮同事解决Swoole Server问题时,发现有1个worker进程一直处于R的状态,而且CPU耗时非常高。初步断定是PHP代码中发生死循环。下面通过一段代码展示如何解决PHP死循环问题。#dead_loop.php$array = array();for($i = 0; $i handle...
分类:
数据库 时间:
2014-07-09 20:57:00
阅读次数:
263
PHP的代码包中提供了一个 .gdbinit 的gdb脚本文件,里面提供了20多个 gdb 的自定义命令,用于方便PHP的调试,下面举几个例子:测试脚本a.php: “zend_version”“func_num_args\0″ => “func_num_args”“func_get_arg\0″ ...
分类:
数据库 时间:
2014-07-09 20:36:59
阅读次数:
408
.so写好了是给php脚本调用的,如果php脚本执行崩掉了,.so也只能在进程中饮恨而终,这时候php脚本调试经常用的echo, print_r, var_dump都派不上用场了。即使能打印一点儿错误log出来,但也是只见表象,不知内情,根本解决不了一些诡异的bug。还好我们有gdb,下面就 通过4...
分类:
数据库 时间:
2014-07-09 17:04:57
阅读次数:
272