- 博客(14)
- 收藏
- 关注
原创 STRUCT以及VECTOR的赋值问题
对于相同的struct类型,他们相互之间可以赋值的,测试代码如下:#include#include#includeusing namespace std;struct bnln{ int a; int b;};int main(){ struct bnln bnln1; struct bnln bnln2; //测试vector vector ve
2007-11-14 12:25:00 3457
转载 GDB的详细用法
用GDB调试程序 GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Wind
2007-10-22 18:40:00 621
转载 用GDB调试程序(七)
改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:
2007-10-22 18:37:00 444
转载 用GDB调试程序(六)
七、设置显示选项 GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。 set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set_quotes (lq=0x34c7
2007-10-22 18:36:00 474
原创 用GDB调试程序(五)
看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print print / 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x
2007-10-22 18:33:00 356
原创 用GDB调试程序(四)
查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如:
2007-10-22 18:32:00 400
原创 用GDB调试程序(三)
四、维护停止点上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。 clear 清除所有的已定义的停止点。 clear clear 清除所有设置在函数上的停止点。 clear
2007-10-22 18:30:00 484
转载 用GDB调试程序(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, cov
2007-10-22 18:28:00 441
转载 用GDB调试程序(一)
用GDB调试程序GDB概述————GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的
2007-10-22 18:27:00 450
转载 Typedef 的基本概念
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。
2007-10-12 09:36:00 297
转载 extern “C”的使用
关于extern "C"的用法 链接指示符extern C 如果程序员希望调用其他程序设计语言尤其是C 写的函数那么调用函数时必须 告诉编译器使用不同的要求例如当这样的函数被调用时函数名或参数排列的顺序可能 不同无论是C++函数调用它还是用其他语言写的函数调用它 程序员用链接指示符linkage directive 告诉编译器该函数是用其他的程序设
2007-09-16 15:53:00 412
转载 关于 extern "C" 的问题
extern "C" 多用在用非C的语言写的程序意欲调用用C写成的库。用c写成的库里的函数名(肯定是由C编译器编译的)都是C的风格——也就是简单的一个函数名。比如函数void st_read(ft_t f)在库里的符号名就是st_read。 那么在你的程序中(假设是C++写成的)需要用到这个st_read函数,当然首先要声明这个函数,让编译器知道存
2007-09-16 15:51:00 551
转载 unix下的调试工具:dbx
dbx 命令 用途 提供了一个调试和运行程序的环境。 语法 dbx [ -a ProcessID ] [ -c CommandFile ] [ -d NestingDepth ] [ -I Directory ] [ -E DebugEnvironment ] [ -p oldpath=newpath:...| pathfile ] [ -k ] [ -u ] [ -F ] [ -r ] [
2007-08-08 14:24:00 1593
原创 解析“extern”
解析“extern” 1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件: //A.cpp
2007-08-06 10:41:00 643 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人