??xml version="1.0" encoding="utf-8" standalone="yes"?>一本一道久久综合狠狠老,久久国产影院,…久久精品99久久香蕉国产http://www.shnenglu.com/loky/archive/2008/12/27/70480.html。。。?/dc:creator>。。。?/author>Fri, 26 Dec 2008 16:36:00 GMThttp://www.shnenglu.com/loky/archive/2008/12/27/70480.htmlhttp://www.shnenglu.com/loky/comments/70480.htmlhttp://www.shnenglu.com/loky/archive/2008/12/27/70480.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/70480.htmlhttp://www.shnenglu.com/loky/services/trackbacks/70480.html gcc g++ 常用~译选项
       Linux中gccQg++常用~译选项
-x language filename
讑֮文g所使用的语a,使后~名无?对以后的多个有效.也就是根据约定,C语言的后~名称?c的,而C++的后~名是.C或?cpp,如果你很? 性,军_你的C代码文g的后~名是.pig 哈哈Q那你就要用q个参数,q个参数对他后面的文件名都v作用Q除非到了下一个参数的使用。可以用的参数有下面的q些Q?
  `c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a
ssembler-with-cpp'.
  看到英文Q应该可以理解的?br> 
  例子用法: cd..
  gcc -x c hello.pig

-x none filename
  x上一?a name="baidusnap4">

/* 注释中的不常?***************************************************

-fno-asm
  此选项实现ansi
选项的功能的一部分Q它止asm,inline和typeof用作关键字?
    
-fno-strict-prototype
  只对gQ+起作?使用q个
选项,g++对不带参数的函?都认为是没有昑ּ的对参数的个数和cd说明,而不是没有参?
  而gcc无论是否使用q个参数,都将Ҏ(gu)有带参数的函?认ؓ(f)没有昑ּ说明的类?

  
-fthis-is-varialble
  是向传lc++看齐,可以使用this当一般变量?
  
-fcond-mismatch
  允许条g表达式的W二和第三参数类型不匚w,表达式的值将为voidcd
  
-funsigned-char
-fno-signed-char
-fsigned-char
-fno-unsigned-char
  q四个参数是对charcdq行讄,军_charcd讄成unsigned char(前两个参
?或?signed char(后两个参?

*注释完成*********************************************/  

-include file
  包含某个代码,单来?是便于某个文g需要另一个文件的时?可以用它设
?功能q当于在代码中使用Qi nclude<filename>
  例子用法:
  gcc hello.c -include /root/pianopan.h
  
-imacros file
  file文g的宏,扩展到gcc/g++的输入文?宏定义本wƈ不出现在输入文g?
  
-Dmacro
  相当于C语言中的#define macro
  
-Dmacro=defn
  相当于C语言中的#define macro=defn
  
-Umacro
  相当于C语言中的#undef macro
-undef
  取消对Q何非标准宏的定义
  
-Idir
  在你是用Qi nclude"file"的时?gcc/g++?x)先在当前目录查找你所制定的头文g,?
果没有找?他回到缺省的头文件目录找,如果使用-I制定了目??
  回先在你所制定的目录查?然后再按常规的顺序去?
  对于Qi nclude<file>,gcc/g++?x)?I制定的目录查?查找不到,然后到pȝ的缺
省的头文件目录查?
  
-I-
  是取消前一个参数的功能,所以一般在-Idir之后使用
  
-idirafter dir
  ?I的目录里面查扑֤?讲到q个目录里面查找.
  
-iprefix prefix
-iwithprefix dir
  一般一起??I的目录查扑֤??x)到prefix+dir下查?
  
-nostdinc
  使编译器不再pȝ~省的头文g目录里面扑֤文g,一般和-I联合使用,明确限定?
文g的位|?
  
-nostdin C++
  规定不在g++指定的标准\l中搜烦,但仍在其他\径中搜烦,.?strong style="background-color: #ff66ff;">选项在创libg++?
使用
  
-C
  在预处理的时?不删除注释信?一般和-E使用,有时候分析程序,用这个很方便?


-M
  生成文g兌的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c
来测试一下,很简单?
  
-MM
  和上面的那个一P但是它将忽略由#i nclude<file>造成的依赖关pR?
  
-MD
  ?M相同Q但是输出将导入?d的文仉?
  
-MMD
  ?MM相同Q但是输出将导入?d的文仉?
  
-Wa,option
  ?strong style="background-color: #ff66ff;">选项传递optionl汇~程?如果option中间有逗号,将option分成多个选项,?
后传递给?x)汇~程?
  
-Wl.option
  ?strong style="background-color: #ff66ff;">选项传递optionl连接程?如果option中间有逗号,将option分成多个选项,?
后传递给?x)连接程?
  
-llibrary
  制定~译的时候用的?
  例子用法
  gcc -lcurses hello.c
  使用ncurses库编译程?
  
-Ldir
  制定~译的时候,搜烦库的路径。比如你自己的库Q可以用它制定目录,不然
  ~译器将只在标准库的目录找。这个dir是目录的名U?
  
-O0
-O1
-O2
-O3
  ~译器的优化选项?个别,-O0表示没有优化,-O1为缺省|-O3优化U别最高 
    
-g
  只是~译器,在编译的时候,产生调试信息?
  
-gstabs
  ?strong style="background-color: #ff66ff;">选项以stabs格式声称调试信息,但是不包括gdb调试信息.
  
-gstabs+
  ?strong style="background-color: #ff66ff;">选项以stabs格式声称调试信息,q且包含仅供gdb使用的额外调试信?
  
-ggdb
  ?strong style="background-color: #ff66ff;">选项尽可能的生成gdb的可以用的调试信息.
-static
  ?strong style="background-color: #ff66ff;">选项禁止用动态库Q所以,~译出来的东西,一般都很大Q也不需要什?
动态连接库Q就可以q行.
-share
  ?strong style="background-color: #ff66ff;">选项尽量用动态库Q所以生成文件比较小Q但是需要系l由动态库.
-traditional
  试图让编译器支持传统的C语言Ҏ(gu)?/font>



]]>
ACE的安?/title><link>http://www.shnenglu.com/loky/archive/2008/12/26/70476.html</link><dc:creator>。。。?/dc:creator><author>。。。?/author><pubDate>Fri, 26 Dec 2008 15:57:00 GMT</pubDate><guid>http://www.shnenglu.com/loky/archive/2008/12/26/70476.html</guid><wfw:comment>http://www.shnenglu.com/loky/comments/70476.html</wfw:comment><comments>http://www.shnenglu.com/loky/archive/2008/12/26/70476.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/loky/comments/commentRss/70476.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/loky/services/trackbacks/70476.html</trackback:ping><description><![CDATA[*************构徏ACEQ?  <br>     <br>   1、下载,解压~ACE包,讄环境变量PATH包含$ACE_ROOT$/bin   <br>     <br>   2、设|?ACE_ROOT$/ace/config.hQ加入一行:(x)Q该语句是ACE针对WIN32q_的配|文Ӟ   <br>   #include   "ace/config-win32.h"   <br>     <br>   注意Q?  <br>   A、如果你使用9x/MeQ加入:(x)   <br>   #define   ACE_HAS_WINNT4   0   <br>   B、如果你要用标准C++头文件的?  <br>   #define   ACE_HAS_STANDARD_CPP_LIBRARY   1   <br>   C、要使用MFC的话   <br>   #define   ACE_HAS_MFC   1   <br>   以上的define语句都要?include   "ace/config-win32.h"之前包含   <br>     <br>   3、VC6打开$ACE_ROOT$/ace/ace.dswQVC.net打开$ACE_ROOT$/ace/ace/ace.slnQ构建ACE   <br>     <br>   4、构建成功与否,可打开$ACE_ROOT$/tests下的工程文g看看能不能编译通过   <br>     <br>   其实Q如果你初学ACE的话Q暂时还不想涉及(qing)上面烦琐的步骤的话,可以找一?exe安装包,安装完成之后Q打开ace.dsw/ace.sln卛_构徏 了;偶开始学ACE的时候,是使用《ACEE序员指?    |络与系l编E的实用设计模式》书后自带光盘中ACE53b.exe安装、构建的?   <br>     <br>     <br>   **************在你的程序中使用ACEҎ(gu)Q打开目-->讄Q?  <br>     <br>   C/C++选项?  <br>   Code   GenerationQ选择多线E版的运行时库(如:(x)Debug   Multithreaded   DLLQ?  <br>   ProprocessorQ在“附加包含路径”中包?ACE_ROOT$   <br>     <br>   Link选项?  <br>   InputQ在“对象/库模?#8221;包含适当的ACE库文件名Q附表AQ?  <br>   加上.libQ如Qaced.lib,acesd.lib{?  <br>   InputQ在“附加库\?#8221;中包?ACE_ROOT$/ace   <br>     <br>     <br>   **************附表AQ?  <br>   -----------------------------------------------------------   <br>   配置 文g?  <br>   -----------------------------------------------------------   <br>   DLL   debug aced   <br>   DLL   release ace   <br>   Static   library   debug acesd   <br>   Static   library   release aces   <br>   MFC   DLL   debug acemfcd   <br>   MFC   DLL   release acemfc   <br>   -----------------------------------------------------------   <br>     <br>   英文比较好的Q可直接查看$ACE_ROOT$/ACE-INSTALL.html#msvc<br><br>ACE环境构徏W记(Linux)   :)   <br>     <br>   **************构徏ACE**************   <br>     <br>   1Q下载ACE源码包。我下的?.4版的Q文件名为ACE54SRC.tar.gz。gzip解压Qtar解包后,得到一个叫ACE_wrappers 的目录,我把它放?home/lok/ace目录下。注意如果我没有特别说明Q所有操作都是在一般用户下q行的?  <br>     <br>   2Q编译前的必要工作?  <br>   讄环境变量Q在shell下输入:(x)ACE_ROOT=/home/lok/ace/ACE_wrappers;   export   ACE_ROOT   <br>   (注意上面的操作是在同一行中执行的,如果要分行,可以不用分号)。这栯|的变量只是临时的,如果惌怹保存q个变量Q可以切换到rootQ把变量写到文g/etc/profile中;   <br>   ?ACE_ROOT/ace目录下新Z个config.h文gQ内容ؓ(f)Q?include   "ace/config-linux.h"   <br>   ?ACE_ROOT/include/makeinclude目录下新Z个platform_macros.GNU文gQ内容ؓ(f)Qinclude   $(ACE_ROOT)/include/makeinclude/platform_linux.GNU   <br>     <br>   3Q在$ACE_ROOT目录下,新徏一个目录,用以执行configure的结?br>  mkdir aaa<br>  cd aaa<br>?ACE_ROOT/aaa中运?br>  ../configure<br>在确认结果无误后Q执?<br>  make<br>     <br>   4Q切换到root用户Q把刚生成的libACE.so和libACE.so.5.4.0(?ACE_ROOT/ace目录?拯?usr/libQACE开发环境构建完毕!   <br>     <br>     <br>   **************写个程序测试ACE**************   <br>   1Q编写Log_Msg.cppQ内容如下:(x)   <br>   #include   "ace/Log_Msg.h"   <br>   void   foo   (void);   <br>   int   ACE_TMAIN   (int,   ACE_TCHAR   *[])   <br>   {   <br>       ACE_TRACE(ACE_TEXT   ("main"));   <br>       ACE_DEBUG   ((LM_INFO,   ACE_TEXT   ("%IHi   Mom\n")));   <br>       foo();   <br>       ACE_DEBUG   ((LM_INFO,   ACE_TEXT   ("%IGoodnight\n")));   <br>       return   0;   <br>   }   <br>   void   foo   (void)   <br>   {   <br>       ACE_TRACE   (ACE_TEXT   ("foo"));   <br>       ACE_DEBUG   ((LM_INFO,   ACE_TEXT   ("%IHowdy   Pardner\n")));   <br>   }   <br>     <br>   2Q写makefileQ内容如下:(x)   <br>   LIB =   -lACE   <br>   LIBPATH =   -L$(ACE_ROOT)/ace   <br>   HPATH =   -I$(ACE_ROOT)   <br>     <br>   Log_Msg :   Log_Msg.cpp   <br>   g++   Log_Msg.cpp   -o   Log_Msg   $(LIB)   $(LIBPATH)   $(HPATH)   <br>     <br>   3QmakeQ运行Log_MsgQ测试完毕!   <br>     <br>     <br>   ***************补充*************   <br>   $(ACE_ROOT)/example下有很多例子可以参考,但你?x)发现它们的makefile写得很奇怪,q是因ؓ(f)q些makefile是由E序自动 生成的,目的是让它们可以在不同系l下都可正常工作。关于这些makefileQ可以到http://www.kehui.net /index.php?op=article&file=read&aid=30812ȝ一下。如果你的程序只需要在linux下工 作,那只要自己写?lACE可以了?nbsp; <br> <br> <img src ="http://www.shnenglu.com/loky/aggbug/70476.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/loky/" target="_blank">。。。?/a> 2008-12-26 23:57 <a href="http://www.shnenglu.com/loky/archive/2008/12/26/70476.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>析Linux下core文g http://www.shnenglu.com/loky/archive/2008/12/10/69106.html。。。?/dc:creator>。。。?/author>Wed, 10 Dec 2008 13:23:00 GMThttp://www.shnenglu.com/loky/archive/2008/12/10/69106.htmlhttp://www.shnenglu.com/loky/comments/69106.htmlhttp://www.shnenglu.com/loky/archive/2008/12/10/69106.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/69106.htmlhttp://www.shnenglu.com/loky/services/trackbacks/69106.html当我们的E序崩溃Ӟ内核有可能把该程序当前内存映到core文g里,方便E序员找到程序出现问题的地方。最常出 现的Q几乎所有CE序员都出现q的错误是“D错?#8221;了。也是最难查出问题原因的一个错误。下面我们就针对“D错?#8221;来分析core文g的生、以?qing)我? 如何利用core文g扑ֈ出现崩溃的地斏V?/font>

何谓core文g

当一个程序崩溃时Q在q程当前工作目录的core文g中复制了该进E的存储囑փ?font face="Times New Roman">core文g仅仅是一个内存映?font face="Times New Roman">(同时加上调试信息)Q主要是用来调试的?/font>

当程序接收到以下UNIX信号?x)生core文gQ?/font>

名字

说明

ANSI C  POSIX.1

SVR4  4.3+BSD

~省动作

SIGABRT

异常l止(abort)

  .       .

  .      .

l止w/core

SIGBUS

g故障

          .

  .      .

l止w/core

SIGEMT

g故障

 

  .      .

l止w/core

SIGFPE

术异常

  .       .

  .      .

l止w/core

SIGILL

非法g指o(h)

  .       .

  .      .

l止w/core

SIGIOT

g故障

 

  .      .

l止w/core

SIGQUIT

l端退出符

          .

  .      .

l止w/core

SIGSEGV

无效存储讉K

  .       .

  .      .

l止w/core

SIGSYS

无效pȝ调用

 

  .      .

l止w/core

SIGTRAP

g故障

 

  .      .

l止w/core

SIGXCPU

过CPU限制(setrlimit)

 

  .      .

l止w/core

SIGXFSZ

过文g长度限制(setrlimit)

 

  .      .

l止w/core

在系l默认动作列Q?#8220;l止w/core”表示在进E当前工作目录的core文g中复制了该进E的存储囑փQ该文g名ؓ(f)coreQ由此可以看U功能很久之前就是UNIX功能的一部分Q。大多数UNIX调试E序都用core文g以检查进E在l止时的状态?/font>

core文g的生不是POSIX.1所属部?而是很多UNIX版本的实现特征。UNIXW?版没有检查条? (a)?b)Qƈ且其源代码中包含如下说明Q?#8220;如果你正在找M护信P那么当设|?用户-ID命o(h)执行Ӟ可能生大量的q种信号”?.3 + BSD产生名ؓ(f)core.prog的文Ӟ其中prog是被执行的程序名的前1 6个字W。它对core文gl予了某U标识,所以是一U改q特征?/font>

表中“g故障”对应于实现定义的g故障。这些名字中有很多取自UNIX早先在DP-11上的实现。请查看你所使用的系l的手册Q以切地确定这些信号对应于哪些错误cd?/font>

下面比较详细地说明这些信受?/font>

SIGABRT 调用abort函数时生此信号。进E异常终止?/font>

SIGBUS  指示一个实现定义的g故障?/font>

SIGEMT  指示一个实现定义的g故障?/font>

EMTq一名字来自PDP-11的emulator trap 指o(h)?/font>

SIGFPE  此信可CZ个算术运异常,例如除以0QQҎ(gu)出等?/font>

SIGILL  此信hCE已执行一条非法硬件指令?/font>

4.3BSD由abort函数产生此信受SIGABRT现在被用于此?/font>

SIGIOT  q指CZ个实现定义的g故障?/font>

IOTq个名字来自于PDP-11对于输入Q输出TRAP(input/output TRAP)指o(h)的羃写。系lV的早期版本,由abort函数产生此信受SIGABRT现在被用于此?/font>

SIGQUIT 当用户在l端上按退出键Q一般采用Ctrl-\Q时Q生此信号Qƈ送至前台q?/font>

E组中的所有进E。此信号不仅l止前台q程l(如SIGINT所做的那样Q,同时产生一个core文g?/font>

SIGSEGV 指示q程q行了一ơ无效的存储讉K?/font>

名字SEGV表示“D违例(segmentation violationQ?#8221;?/font>

SIGSYS  指示一个无效的pȝ调用。由于某U未知原因,q程执行了一条系l调用指令,

但其指示pȝ调用cd的参数却是无效的?/font>

SIGTRAP 指示一个实现定义的g故障?/font>

此信号名来自于PDP-11的TRAP指o(h)?/font>

SIGXCPU SVR4?.3+BSD支持资源限制的概c(din)如果进E超q了其YC P U旉限制Q则产生此信受?/font>

SIGXFSZ 如果q程过了其软文仉度限Ӟ则SVR4?.3+BSD产生此信受?/font>

摘自《UNIX环境高~程》第10?信号?/font>

 

使用core文g调试E序

看下面的例子Q?/font>

/*core_dump_test.c*/
 #include <stdio.h>
const char *str = "test";
void core_test(){
    str[1] = 'T';
}

int main()
{
    core_test();
    return 0;
}

~译Q?br>gcc –g core_dump_test.c -o core_dump_test

如果需要调试程序的话,使用gcc~译时加?font face="Times New Roman">-g选项Q这栯?font face="Times New Roman">core文g的时候比较容易找到错误的地方?/font>

执行Q?br> ./core_dump_test
D错?/font>

q行core_dump_testE序出现?#8220;D错?#8221;Q但没有产生core文g。这是因为系l默?font face="Times New Roman">core文g的大ؓ(f)0Q所以没有创建。可以用ulimit命o(h)查看和修?font face="Times New Roman">core文g的大?br>ulimit -c 0
ulimit -c 1000
ulimit -c 1000

-c 指定修改core文g的大,1000指定?font face="Times New Roman">core文g大小。也可以?font face="Times New Roman">core文g的大不做限Ӟ如:(x)

ulimit -c unlimited
ulimit -c unlimited

如果惌修改怹生效Q则需要修攚w|文Ӟ?font face="Times New Roman"> .bash_profile?font face="Times New Roman">/etc/profile?font face="Times New Roman">/etc/security/limits.conf?/font>

再次执行Q?br>./core_dump_test
D错?/font> (core dumped)
ls core.*
core.6133

可以看到已经创徏了一?font face="Times New Roman">core.6133的文?font face="Times New Roman">.6133?font face="Times New Roman">core_dump_testE序q行的进E?font face="Times New Roman">ID?/font>

调式core文g
core文g是个二进制文Ӟ需要用相应的工h分析E序崩溃时的内存映像?/font>

file core.6133

core.6133: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style, from 'core_dump_test'

?font face="Times New Roman">Linux下可以用GDB来调?font face="Times New Roman">core文g?/font>

gdb core_dump_test core.6133

GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
Core was generated by `./core_dump_test'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
#0  0x080482fd in core_test () at core_dump_test.c:7
7           str[1] = 'T';
(gdb) where
#0  0x080482fd in core_test () at core_dump_test.c:7
#1  0x08048317 in main () at core_dump_test.c:12
#2  0x42015574 in __libc_start_main () from /lib/tls/libc.so.6

GDB中键?font face="Times New Roman">whereQ就?x)看到程序崩溃时堆栈信息Q当前函C前的所有已调用函数的列表(包括当前函数Q,gdb只显C最q几个)Q我们很Ҏ(gu)扑ֈ我们的程序在最后崩溃的时候调用了core_dump_test.c W?font face="Times New Roman">7行的代码Q导致程序崩溃。注意:(x)在编译程序的时候要加入选项-g。?zhn)也可以试试其他命令, 如 fram?font face="Times New Roman">list{。更详细的用法,h?font face="Times New Roman">GDB文档?/font>

core文g创徏在什么位|?/strong>

在进E当前工作目录的下创建。通常与程序在相同的\径下。但如果E序中调用了chdir函数Q则有可能改变了当前? 作目录。这时core文g创徏在chdir指定的\径下。有好多E序崩溃了,我们却找不到core文g攑֜什么位|。和chdir函数有关系。当然程? 崩溃了不一定都产生core文g?/font>

什么时候不产生core文g

在下列条件下不生core文gQ?br>( a )q程是设|?用户-IDQ而且当前用户qE序文g的所有者;
( b )q程是设|?l?IDQ而且当前用户q该程序文件的l所有者;
( c )用户没有写当前工作目录的许可权;
( d )文g太大。core文g的许可权(假定该文件在此之前ƈ不存?通常是用戯/写,l读和其他读?/font>

利用GDB调试core文gQ当遇到E序崩溃时我们不再束手无{?/font>




]]>
便利的开发编辑工?vim http://www.shnenglu.com/loky/archive/2008/12/09/68978.html。。。?/dc:creator>。。。?/author>Tue, 09 Dec 2008 13:13:00 GMThttp://www.shnenglu.com/loky/archive/2008/12/09/68978.htmlhttp://www.shnenglu.com/loky/comments/68978.htmlhttp://www.shnenglu.com/loky/archive/2008/12/09/68978.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/68978.htmlhttp://www.shnenglu.com/loky/services/trackbacks/68978.html阅读全文

]]>
用GDB调试E序(8)──查看栈信?zzhttp://www.shnenglu.com/loky/archive/2008/12/09/68977.html。。。?/dc:creator>。。。?/author>Tue, 09 Dec 2008 13:06:00 GMThttp://www.shnenglu.com/loky/archive/2008/12/09/68977.htmlhttp://www.shnenglu.com/loky/comments/68977.htmlhttp://www.shnenglu.com/loky/archive/2008/12/09/68977.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/68977.htmlhttp://www.shnenglu.com/loky/services/trackbacks/68977.html查看栈信?/h2>

当程序被停住了,你需要做的第一件事是查看E序是在哪里停住的。当你的E序调用了一个函敎ͼ函数的地址Q函数参敎ͼ函数内的局部变量都?x)被压?#8220;?#8221;Q?/font>StackQ中。你可以?/font>GDB命o(h)来查看当前的栈中的信息?/font>

下面是一些查看函数调用栈信息?/font>GDB命o(h)Q?/font>

    BacktraceQ?/font>bt 打印当前的函数调用栈的所有信息?/font>如:(x)       
        (gdb) bt
        #0 func (n=250) at tst.c:6
        #1 0x08048524 in main (argc=1, argv=0xbffff674) at tst.c:30
        #2 0x400409ed in __libc_start_main () from /lib/libc.so.6
       
从上可以看出函数的调用栈信息Q?/font>__libc_start_main --> main() --> func()   
    backtrace <n>
Q?bt <n> n是一个正整数Q表C只打印栈顶?/font>n层的栈信息?/font>

    backtrace <-n> Q?/font>bt <-n> -n表一个负整数Q表C只打印栈底?/font>n层的栈信息?nbsp;      
如果你要查看某一层的信息Q你需要在切换当前的栈Q一般来_(d)E序停止Ӟ最层的栈是当前栈,如果你要查看栈下面层的详l信息,首先要做的是切换当前栈?/font>

frame <n>Q?/font>f <n> n是一个从0开始的整数Q是栈中的层~号。比如:(x)frame 0Q表C栈Ӟframe 1Q表C栈的第二层?/font>
   up <n>        
表示向栈的上面移?/font>n层,可以不打nQ表C向上移动一层?/font>

down <n> 表示向栈的下面移?/font>n层,可以不打nQ表C向下移动一层?

上面的命令,都会(x)打印出移动到的栈层的信息。如果你不想让其打出信息。你可以使用q三个命令:(x)

     select-frame <n> 对应?frame 命o(h)?/font>
      up-silently <n>
对应?up 命o(h)?/font>
      down-silently <n>
对应?down 命o(h)?/font>

查看当前栈层的信息,你可以用以下GDB命o(h)Q?/font>

frame ?f       ?x)打印出q些信息Q栈的层~号Q当前的函数名,函数参数|函数所在文件及(qing)行号Q函数执行到的语句?/font>

info frameQ?/font>info f q个命o(h)?x)打印出更?f)详细的当前栈层的信息Q只不过Q大多数都是q行时的内内地址。比如:(x)函数地址Q调用函数的地址Q被调用函数的地址Q目前的函数是由什么样的程序语a写成的、函数参数地址?qing)倹{局部变量的地址{等?/font>如:(x)
           (gdb) info f
           Stack level 0, frame at 0xbffff5d4:
             eip = 0x804845d in func (tst.c:6); saved eip 0x8048524
             called by frame at 0xbffff60c
             source language c.
             Arglist at 0xbffff5d4, args: n=250
             Locals at 0xbffff5d4, Previous frame's sp is 0x0
             Saved registers:
             ebp at 0xbffff5d4, eip at 0xbffff5d8
             
     info args     
打印出当前函数的参数名及(qing)其倹{?nbsp;   
     info locals    
打印出当前函C所有局部变量及(qing)其倹{?nbsp;      
     info catch     
打印出当前的函数中的异常处理信息?/font>

]]>
ACE Documentationhttp://www.shnenglu.com/loky/archive/2008/08/19/59338.html。。。?/dc:creator>。。。?/author>Tue, 19 Aug 2008 06:42:00 GMThttp://www.shnenglu.com/loky/archive/2008/08/19/59338.htmlhttp://www.shnenglu.com/loky/comments/59338.htmlhttp://www.shnenglu.com/loky/archive/2008/08/19/59338.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/59338.htmlhttp://www.shnenglu.com/loky/services/trackbacks/59338.html
http://www.dre.vanderbilt.edu/Doxygen/Current/html/ace/index.html

]]>
不要说话http://www.shnenglu.com/loky/archive/2008/08/15/58989.html。。。?/dc:creator>。。。?/author>Fri, 15 Aug 2008 15:48:00 GMThttp://www.shnenglu.com/loky/archive/2008/08/15/58989.htmlhttp://www.shnenglu.com/loky/comments/58989.htmlhttp://www.shnenglu.com/loky/archive/2008/08/15/58989.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/58989.htmlhttp://www.shnenglu.com/loky/services/trackbacks/58989.html

陈奕q?不要说话
作曲:柯
作词:柯


p的v面扑满白色的月光
我出望着心不知飞哪?br>听到她在告诉你说她真的喜Ƣ你
我不知该w哪?br>׃个h是不是应该有默契
我以Z懂得每当我看着?br>我藏h的秘密在每一天清晨里
暖成咖啡安静的拿l你
愿意用一枝黑色的{
M出沉默舞台剧
灯光再亮也抱住你
愿意在角落唱沙哑的歌
再大C都是l你
L(fng)心听不要说话
请原谅我不会(x)说话
爱是用心?font style="COLOR: #e10900">不要说话



]]>星星亮了http://www.shnenglu.com/loky/archive/2008/08/15/58988.html。。。?/dc:creator>。。。?/author>Fri, 15 Aug 2008 15:44:00 GMThttp://www.shnenglu.com/loky/archive/2008/08/15/58988.htmlhttp://www.shnenglu.com/loky/comments/58988.htmlhttp://www.shnenglu.com/loky/archive/2008/08/15/58988.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/58988.htmlhttp://www.shnenglu.com/loky/services/trackbacks/58988.html 


演唱Q阿?br>星星亮了
我从睡梦中醒?br>轻轻门H打开
月光p栯了进?br>我的心温暖h
我像是飘在城市的一颗尘?br>L一片土地停留下?br>飘呀飘飘在茫茫h?br>偶尔?x)有月亮陪我{待

时光(zhn)?zhn)的溜开
我还来不?qing)释怀
灯火渐渐把梦x?br>天边的星星取代
我像是飘在城市的一颗尘?br>L一片土地停留下?br>飘呀飘飘在茫茫h?br>偶尔?x)有月亮陪我{待
我推开H迎向那一片灯?br>再次发现自己的存?br>眨呀眨星星就亮了h
H然之间有种感动自在


]]>
挥挥?/title><link>http://www.shnenglu.com/loky/archive/2008/08/15/58987.html</link><dc:creator>。。。?/dc:creator><author>。。。?/author><pubDate>Fri, 15 Aug 2008 15:36:00 GMT</pubDate><guid>http://www.shnenglu.com/loky/archive/2008/08/15/58987.html</guid><wfw:comment>http://www.shnenglu.com/loky/comments/58987.html</wfw:comment><comments>http://www.shnenglu.com/loky/archive/2008/08/15/58987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/loky/comments/commentRss/58987.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/loky/services/trackbacks/58987.html</trackback:ping><description><![CDATA[<p> <br> <object height=200 width=200 align=middle classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"> <PARAM name="Movie" value="http://player.youku.com/player.php/sid/XMzgxOTE5OTI=/v.swf" /> <PARAM name="Quality" value="high"/><param name="wmode" value="transparent"/><embed src="http://player.youku.com/player.php/sid/XMzgxOTE5OTI=/v.swf" width="200" height="200" align="middle" quality="high" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed> </object><br>歌曲?<font style="COLOR: #e10900">挥挥?/font><br>演唱:汪峰<br><br><font style="COLOR: #e10900">挥挥?/font>q福掠过麦田<br>推倒了几重的围?br><font style="COLOR: #e10900">挥挥?/font>晚上你回忆着<br>你哪张失忆般的脸?br>三月早和她去贡庙q句话应该随信心<br>带着qh的方向坠落在路上<br>你是否看到我站在路旁<br>默默?font style="COLOR: #e10900">挥挥?/font>送你去远?br>你是否知道在q一瞬间<br>轻轻的爱<font style="COLOR: #e10900">挥挥?/font><br>一颗心被埋?br><font style="COLOR: #e10900">挥挥?/font><br>子过山岗<br>跌了雪域湖的舟<br><font style="COLOR: #e10900">挥挥?/font>去能飞过丛林<br>你莫在岁月入p<br>然后整合那箱?wi)?br>蒲公׃那的布谷?br>带着烦恼的痴心跌落在天堂<br></p> <img src ="http://www.shnenglu.com/loky/aggbug/58987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/loky/" target="_blank">。。。?/a> 2008-08-15 23:36 <a href="http://www.shnenglu.com/loky/archive/2008/08/15/58987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACE中的Double Checked Locking 模式 --转脓(chung)http://www.shnenglu.com/loky/archive/2008/08/15/58953.html。。。?/dc:creator>。。。?/author>Fri, 15 Aug 2008 09:42:00 GMThttp://www.shnenglu.com/loky/archive/2008/08/15/58953.htmlhttp://www.shnenglu.com/loky/comments/58953.htmlhttp://www.shnenglu.com/loky/archive/2008/08/15/58953.html#Feedback0http://www.shnenglu.com/loky/comments/commentRss/58953.htmlhttp://www.shnenglu.com/loky/services/trackbacks/58953.html阅读全文

]]>
þþƷƷƷ| ȾþùþƷ | ھƷþþþþ鶹| ƷþþþAV| 97Ʒ97þþþþ| þùɫavѿ| ޹Ʒþ98| þҹӰԺѹۿ| þٸ۲AVר| þþþþùƷ볬| þþƷӰԺ| ޹ƷȾþ| þþûɫƬ| պAVëƬƷþþ| þþþѿӰƬ| þùƷ| ƷŮþþþAV| þĻ| ѾþҹƷ| þҹɫƷwww| 99ƷѾþþþþ| þþƷӰԺ| ɫۺϾþþþĻ | ƷۺϾþþþþ97| ޾ƷþþþĻ| һɫþ99һۺ| 91Ʒþþþþù۲| þþþƷ| һɫۺϾþ| þùƷ99Ʒ| ɫۺϾþ֮ۺϾþ| ɫ꼤þۺ| þˬˬAV| Ʒþþþþþþþ| þþƷ| Ĺ˾Ʒþ޾ƷA뾫Ʒ | þþƷ| þþƷ˘AV| һһþaþþƷۺ | þþþһ| Ʒ99þaaaһëƬ|