[转]linux下gdb单步调试
用 GDB 调试程序
GDB 概述
————
GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC 、 BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC 、 BCB 的图形化调试器更强大的功能。所谓 “ 寸有所长,尺有所短 ” 就是这个道理。
一般来说, GDB 主要帮忙你完成下面四个方面的功能:
1 、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2 、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3 、当程序被停住时,可以检查此时你的程序中所发生的事。
4 、动态的改变你程序的执行环境。
从上面看来, GDB 和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现 GDB 这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。
一个调试示例
——————
源程序: tst.c
1 #include <stdio.h>
2
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i<n; i++)
7 {
8 sum+=i;
9 }
10 return sum;
11 }
12
13
14 main()
15 {
16 int i;
17 long result
相关文档:
1. 运用 expr
#expr 10 + 10 ===> 20
#a=`expr 10 % 3`;echo $a ===> 1; a, k6 [+ N%
#|/ }4 [% N
# b=10;b=`expr $b + 1` ===> 11 (实现了变量的自增1)
2. 方法如下
#! /bin/sh
VAR=1
VAR=$(($VAR+1))
echo $VAR ......
==================这是动态库te.cpp文件
#include <stdio.h>
#include <string.h>
//这一句一定要有,这是导出该函数
extern "C" void add();
void add()
{
printf("@hk.%s(%d): This is add function! \n", __FILE__, __LINE__);
}
g++ -fPIC -shared -o ./libte.so ./te.cpp
============== ......
本人在建立交叉编译环境是遇到了一点点小问题和疑问点:
1、使用虚拟机和PC机之间共享文件是(不是用共享目录方式),从PC复制文件到虚拟机共享,共享的文件不能太大,而者文件里面最好不要有多个文件(竟然有这种情况)。
2、在debian2.6内核中用vim编写程序比用vi好,用vi时会引入很多错误的字符。
......
发布: 2009-3-30 14:11 | 作者: gyl4802959
| 来源: IT运维专家网
1)预备知识
Nagios自己定义了一套规则用于配置文件,其中最重要的概念就是”对象”----object.通俗的理解:假定我们首先定义了”性别”这个对象,它
的值只可能是男,女,人妖等等,然后定义某人为一个对象,例如张三,定义张三的时候有 ......