source-navigator

      引用页:</font>http://forums.fedoraforum.org/showthread.php?t=213441
                      http://sourcenav.sourceforge.net/online-docs/userguide/index_ug.html
                      http://blog.csdn.net/wohaoa/article/details/6394866
  准备工作:    
           1. windows及linux下可选安装包地址: </font>source-navigator6.0</a>(especially for linux,windows usrs can download  an exe file instead.)
           2.  tuitor and guide:</font>
usrguide</a>

source-navigator</font> 可以:
编辑代码
类和函数、成员相关性显示
调用关系树
Build
自动生成Makefile或者用已有Makefile
Insight(GDB GUI)集成调试
支持语言:C, C++, Java, Tcl, [incr Tcl], FORTRAN and COBOL
Use Source-Navigator to:
1. Analyze how a change will effect external source modules.
2. Find every place in your code where a given function is called.
3. Find each file that includes a given header file.
4. Use the grep</strong> tool to search for a given string in all your source files.

编译安装:</strong>
linux下:
    #  ./configure
    # make
    #  make install
但会出现问题,</font>有找到解法:
(http://forums.fedoraforum.org/showthread.php?t=213441)
註掉 lines 182-184 in the file /opt/sourcenav/share/tk8.3/listbox.tcl
註掉 lines 457-459 in the file /opt/sourcenav/share/tk8.3/text.tcl


windows下:
   参考 install.txt 文件
        
基本编码项目工具:Symbol Browser, Editor,Cross-Referencer
启动:/usr/local/sourcenav/bin/snavigator或者直接snavigator ($PATH已经修改)

       Build和Debug:</strong>
Build 功能很方便,也很灵活,在Build Setting中可以创建和编辑一个Build Target,就是选择要编译的原文件Source Files,使用到的非系统库Library Files,定义编译规则Build Rules,如gcc和g++的编译规则,比如要加入调试开关-g,可以选择Debug选项,定义链接规则Link Rules,可以选择编译成缺省的可执行文件还是Debug文件。Build Target设定好后,就可以Build了,如果build报错,可以直接点击错误进入Edit页面找到原程序行。还可以在Edit页面中Add Window,把Build窗口加入进去。Build使用的是make,根据生成的makefile调用gcc或g++编译和链接。
我在Build C代码时很顺利,但在Build C++代码(.ccp)时遇到了错误,遇到的错误是:
test.cpp:29: undefined reference to 'operator new(unsigned int)'
test.o(.eh frame+0x11): undefined reference to '__gxx_personality_v0'
google后找到了原因,也对gcc和g++有了概念了解。 </font>
gcc和g++的理解:
gcc和g++都是GNU的编译器。
误区一:gcc只能编译c代码,g++只能编译c++代码
两者都可以,但是请注意:
1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
2.编译阶段,g++会调用gcc对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉,好像cpp程序只能用g++似的。
误区二:gcc不会定义__cplusplus宏,而g++会
实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
误区三:编译只能用gcc,链接只能用g++
严 格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。 使用gcc链接C++的话,应该加上-lstdc++标志,不然可能会找不到一些c++需要的连接库函数。如果使用gcc编译C++文件的话还应该加上" -x c++" Ex: "gcc -x c++ -o test.cpp test.exe -lstdc++"</font></blockquote>Source Navigator对C++文件缺省是用g++编译的,因此就不用加-x c++选项了,但链接是用gcc的,因此需加入-lstdc++或修改Build Target用g++链接就可以了。Source Navigator集成了insight,调试时直接调用insight,使用很方便。</font>
</a></div></font>

调试工具Insight (GDB GUI)</a></font></h3>  source-navigator - hejieL - hejiek的博客</a> Insight是最早由Red Hat开发的可视化gdb,它仍然是一个完整的gdb,只是为gdb增加了GUI功能,可以从http://sourceware.org/insight/</a> 了解更多信息和下载最新版本。我下载了insight-6.6,并在FC4上安装试用。</font>

</font>
编译和安装:
#../configure (没有指定prefix,我想应该会覆盖一些原有gdb的文件吧)
#make
因为insight和gdb是捆绑在一起的,因此它的GUI不能和其他版本的gdb混合使用,建议在安装前把老版本的gdb卸载。【不卸载也能用,缺省安装在/usr/local下面了】
#rpm -qa grep
gdbm-devel-1.8.0-25
gdbm-1.8.0-25
gdb-6.3.0.0-1.21
#rpm -e gdb
#make install</font></div>
</font>
使用方法:
命令行方式:gdb,或gdb -nw, 或insight -i=console
GUI方式: insight,或gdb -w,或gdb -i=insight</font></div>
</font>
        调 试的时候,只要在insight中File-Open打开可执行目标文件,insight就会自动找到原文件并断点在main的入口处,当然是编译时用 gcc -g的文件,否则只会出现汇编语言界面。然后点击run button可以按照调试要求Step, Next, Continue等调试方法。</font></div>