zoukankan      html  css  js  c++  java
  • gdb与可视化gdb工具insight巡礼小记

    今天主要了解了一下gdb的用法以及gdb的可视化工具insight。做个小结。总体上来说使用gvim和insight进行开发的过程还是比较舒服的。

    1. 关于gdb的主要用法

    感觉用到的命令不是特别的多。可以参考的文章是:

    1) gdb十分钟教程 

    http://blog.csdn.net/liigo/article/details/582231

    特点:上手快,涵盖了最基本的用法。

    2) 详细用法

    http://fanqiang.chinaunix.net/program/other/2006-07-14/4834.shtml

    特点:言简意赅,涵盖了一些高级功能。比如说处理信号,disable/enable端点等功能。

    http://wiki.ubuntu.org.cn/%E7%94%A8GDB%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F

    特点:可以当做help的替代来看。

    2. insight

    insight是一款类似于VC的调试工具。用下来感觉还是可以的。

    下面是我的编译和安装过程,其中解决了一些问题。(我的系统是Fedora Linux14,root权限)

    1) 下载源代码

    我下载的是 insight-6.8a.tar.bz2

    更新的版本在ftp://sourceware.org/pub/insight/releases(注意,我用chrome开是没有打开成功,用ie或者火狐就行了)

    2) 解压缩

    tar jvxf insight-6.8a.tar.bz2

    3) 生成Makefile
    ./configure

    4) 修改Makefile(注意是gdb目录下的,否则编译报错)
    cd gdb #(进入insight下的gdb目录)
    sudo gedit Makefile
    找到WERROR_CFLAGS = -Werror,将其改为
    WERROR_CFLAGS=#-Werror(这里也可以将‘=’后面的内容删除掉变成 WERROR_CFLGAS= )
    保存退出
    仍然回到insight目录
    cd ..

    5) 修改源码

    如果这里直接开始编译,则会出现一个说tk.ctl文件找不到的错误:

    Tk_Init failed: Can't find a usable tk.tcl in the following directories: 
        /usr/local/share/tk8.4 /usr/local/lib/tk8.4 /usr/lib/tk8.4 /usr/local/library /usr/library /usr/tk8.4.1/library /tk8.4.1/library

    (1)修改insight-6.8/tk/generic/tk.h
    将(line 653)
    #define VirtualEvent (LASTEvent)
    #define ActivateNotify (LASTEvent + 1)
    #define DeactivateNotify (LASTEvent + 2)
    #define MouseWheelEvent (LASTEvent + 3)
    #define TK_LASTEVENT (LASTEvent + 4)
    改为:
    #define VirtualEvent (MappingNotify)
    #define ActivateNotify (MappingNotify + 1)
    #define DeactivateNotify (MappingNotify + 2)
    #define MouseWheelEvent (MappingNotify + 3)
    #define TK_LASTEVENT (MappingNotify + 4)
    并将随后的#define TK_LASTEVENT (LASTEvent + 4)删除(line 661附近)
    (2)修改insight-6.8/tk/generic/tkBind.c
    在line 586和line 587之间增加
    #ifdef GenericEvent
    0,
    #endif


    6) 开始编译
    make

    7) 编译通过后安装

    make install

    8) 运行时候遇到的问题

    (1) 图形界面打开二进制文件不成功

    解决方法:使用 "insight ./xxxx"的方式从命令行打开。

    (2) 启动insight时候提示说”this is not a tk application, couldnot connect to DISPALY ‘0:0’ “

    这是由于XServer权限不够的关系。使用普通的用户,在命令行下调用"xhost +"给予权限即可。

    (3) insight中无法输入

    这是由于中文输入法导致的。通过关闭iBus就可以解决这个问题。我一般都是在虚拟机里面跑的,所以不用中文输入也无所谓。

  • 相关阅读:
    js循环小练习
    计算字符串字节数
    查找最小值
    js文本复制插件&vue
    python打包成exe(py2exe)
    window2008 64位系统没有office组件问题分析及解决
    js onchange事件
    input file里的JQ change() 事件的只生效一次
    powerdesign的license key到期,解决办法
    JQuery好用的日期选择控件 DatePicker
  • 原文地址:https://www.cnblogs.com/aicro/p/2933808.html
Copyright © 2011-2022 走看看