看到了insight这个软件,linux下gdb的前端工具,于是希望试用一下。我的系统centos6.4 x86.
1.下载insight ,解压,编译
# tar jxvf insight-6.8-1a.tar.bz2
# cd insight-6.8
# ./configure
# make
2.期间碰到错误
eval.c: 在函数‘evaluate_subexp_standard’中:
eval.c:1705: 错误:此函数中的‘subscript_array’在使用前可能未初始化
修改gdb/eval.c第1644行为
int subscript_array[MAX_FORTRAN_DIMS] = {0};
再重新make
编译后
make install
安装成功
3输入insight,报错
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
看提示,找不到tk.tcl,那安装试试
yum install tk
发现
Package 1:tk-8.5.7-5.el6.i686 already installed and latest version
难道是版本不对?
又发现一篇好文
参考 gdb与可视化gdb工具insight
https://blog.csdn.net/ljh081231/article/details/17354431
找到了解决方法
(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
tk8.4/library/listbox.tcl 註掉 lines 182-184
#bind Listbox <MouseWheel> {
# %W yview scroll [expr {- (%D / 120) * 4}] units
#}
tk8.4/library/text.tcl 註掉 lines 461-463
#bind Text <MouseWheel> {
# %W yview scroll [expr {- (%D / 120) * 4}] units
#}
————————————————
版权声明:本文为CSDN博主「ljh081231」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ljh081231/article/details/17354431
经过修改,终于可以启动了。
4启动之后发现设置了target一次,之后就没法修改了,输入不了字符。
参考这篇文章arm-linux-insight启动后无法更改target设置解决方法 http://www.linuxdiyf.com/view_418406.html
insight启动后会在当前用户主目录执行.gdbtkinit这个文件,里面保存了很多配置信息
我直接修改了这个文件里的配置。