1. 下载insight-6.8a.tar.bz2

编译:  ./configure --target=arm-linux --prefix=/opt/insight_arm --disable-werror

(1) 其中--target=arm-linux会影响安装生成的可执行文件的名字,例如安装之后可执行文件的名字为:

caodan@caodan-Ubuntu:/opt/insight_arm/bin$ ls

arm-linux-gdb  arm-linux-insight  arm-linux-run  tclsh8.4  wish8.4

(2) --prefix=/opt/insight_arm 的作用, 指定安装路径

(3) --disable-werror 禁止-Werror这个编译选项,因为它会打所有的Warning当作error,导致编译不能通过。

2. 编译 make

3. 安装 make install

安装之后的目录结构为:

caodan@caodan-Ubuntu:/opt/insight_arm$ ls

bin  include  info  lib  man  share

4. 在终端下面运行arm-linux-insight

可能会遇到下面的问题:

caodan@caodan-Ubuntu:/opt/insight_arm/bin$ ./arm-linux-insight

Tk_Init failed: Can't find a usable tk.tcl in the following directories:

/opt/insight_arm/share/tk8.4 /opt/insight_arm/lib/tk8.4 /opt/lib/tk8.4 /opt/insight_arm/library /opt/library /opt/tk8.4.1/library /tk8.4.1/library

/opt/insight_arm/share/tk8.4/tk.tcl: no event type or button # or keysym

no event type or button # or keysym

while executing

"bind Listbox {

%W yview scroll [expr {- (%D / 120) * 4}] units

}"

(file "/opt/insight_arm/share/tk8.4/listbox.tcl" line 183)

invoked from within

"source /opt/insight_arm/share/tk8.4/listbox.tcl"

(in namespace eval "::" script line 1)

invoked from within

"namespace eval :: [list source [file join $::tk_library $file.tcl]]"

(procedure "SourceLibFile" line 2)

invoked from within

"SourceLibFile listbox"

(in namespace eval "::tk" script line 4)

invoked from within

"namespace eval ::tk {

SourceLibFile button

SourceLibFile entry

SourceLibFile listbox

SourceLibFile menu

SourceLibFile panedwindow

SourceLibFile ..."

invoked from within

"if {$::tk_library ne ""} {

if {[string equal $tcl_platform(platform) "macintosh"]} {

proc ::tk::SourceLibFile {file} {

if {[catch {

namesp..."

(file "/opt/insight_arm/share/tk8.4/tk.tcl" line 393)

invoked from within

"source /opt/insight_arm/share/tk8.4/tk.tcl"

("uplevel" body line 1)

invoked from within

"uplevel #0 [list source $file]"

This probably means that tk wasn't installed properly.

提示信息是说tl没有安装好,

什么是tcl? 什么是tk?

tcl 是Tool Command Language 的缩写,而 tk 是一个 X window 的 Tool Kit,是 tcl在 X Window System 的应用。

tcl 是一种解译语言,也是一套 C 的函式库。为什么这样说呢?因为 tcl 的解译器被设计成一个 C 的函式库,提供基本的命令与控制结构,并且使用 tcl 的任何程序皆可以根据 tcl 的规格撰写 C 程序与之链接增加新的命令,以提高关键程序的效率、或增加新的特色。

tk 的解译器叫 wish,是 WIndowing SHell 的简称。只要在提示号下 (xterm 下)输入 wish 就可以了。接下来你可以看到一个空白的窗口出现,xterm 下的提示号也变成了 wish 的提示号。此时,在提示号输入以下两行指令,就可以见最简单,最让人惊奇的t k程序了:

暂时不知道怎样解决上面遇到的这个问题,不过最快的方式就是把出错的行屏蔽掉。

将share/tk8.4/listbox.tcl第181行附近的内容注释掉

#annotation by caodan

#bind Listbox {

#    %W yview scroll [expr {- (%D / 120) * 4}] units

#}

将share/tk8.4/text.tcl文件第461行附近的内容注释掉

#annotation by caodan

#bind Text {

#    %W yview scroll [expr {- (%D / 120) * 4}] units

#}

再次执行,就会发现没有问题了,界面如下:

5. 可以在Dash菜单中建立一个快捷方式(针对Ubuntu用户)

caodan@caodan-Ubuntu:/usr/local$ cat /usr/share/applications/insight.desktop

[Desktop Entry]

Name=insight

GenericName=insight-6.8

Comment=graphic interface for debug with gdbserver

Exec=/opt/insight_arm/bin/arm-linux-insight

Terminal=false

Type=Application

StartupNotify=true

Icon=

Categories=Utility;Gnome;tcl;tk;redhat

6. 运行jlinkgdbserver, 并使用insight连接到gdbserver

运行jlinklgdbserver的界面如下,正在TCP/IP的2331端口等待连接:

caodan@caodan-Ubuntu:~/code/asm/S3C6410$ sudo jlinkgdbserver

[sudo] password for caodan:

SEGGER J-Link GDB Server V4.22

JLinkARM.dll V4.22 (DLL compiled Dec 17 2010 17:41:06)

Listening on TCP/IP port 2331

J-Link connected

Firmware: J-Link ARM V8 compiled Dec 16 2010 20:21:29

Hardware: V8.00

S/N: 20100213

Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFULL

J-Link found 2 JTAG devices, Total IRLen = 5

JTAG ID: 0x07B76F0F (ARM11)

J-Link: ARM11 CP15 Settings changed: 0x00450078 from 0x00001002, MMU Off, ICache Off, DCache Off

Info: CP15.0.0: 0x410FB766: ARM, Architecture Unknown architecture

Info: CP15.0.1: 0x1D152152: ICache: 16kB (4*128*32), DCache: 16kB (4*128*32)

DIDR: 6 Breakpoints available and 2 Watchpoints available.

注意: 这里的jlinkgdbserver是我自己创建的一个符号链接,JLinkGDBserver如何使用,请参考其他文档

运行insight, 并设置连接到jlinkgdbserver

注意到,在Port的地方,上图为1000, 是因为无法修改这个参数,临时的解决办法是将Hostname设置为127.0.0.1:2331

连接成功之后如下图:

7. 如何解决无法设置端口号的问题:

(1)可以设置jlinkgdbserver启动时候监听的端口为1000

例如:

caodan@caodan-Ubuntu:~/code/asm/S3C6410$ sudo jlinkgdbserver -port 1000

SEGGER J-Link GDB Server V4.22

JLinkARM.dll V4.22 (DLL compiled Dec 17 2010 17:41:06)

Listening on TCP/IP port 1000

J-Link connected

.............................................

(2)另外一种方式是编译前修改源码,修改默认的端口。

gdb/gdbtk/library/targetselection.itb中的默认端口为2331

修改第345行为:  pref define gdb/load/$target-portname 2331

修改第809行为:  pref define gdb/load/$target-portname 2331

重新编译 安装

但是我没有成功,可能是因为make clean的时候有什么地方没有清除干净, 暂时就这样吧,使用第一种方式替代。

jlink怎么调试linux程序_使用jlink+gdbserver+insight调试ARM程序--配置insight相关推荐

  1. gdb的简单使用和gdb+gdbserver方式进行ARM程序调试

    gdb的简单使用 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB ...

  2. idea调试怎么跳出循环_使用IDEA的Debug调试功能,查看程序的运行过程

    Debug追踪,使用IDEA的断点调试功能,查看程序的运行过程 知乎视频​www.zhihu.com 1. 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序 ...

  3. php开发桌面应用程序_使用PHP开发跨平台桌面应用程序的3种方法

    php开发桌面应用程序 PHP as a cross-platform desktop app development language? Blasphemy! Nonetheless, it's p ...

  4. 谷歌地图api 微信小程序_使用Google的融合位置提供程序API进行实时位置跟踪

    谷歌地图api 微信小程序 Location tracking and monitoring have seen a surge in modern application development w ...

  5. linux内核单步调试,Linux内核驱动开发之KGDB单步调试内核(kgdboc方式)

    如何单步调试Linux内核一直困扰着linux驱动开发人员,内核有其代码量大.逻辑复杂.与硬件交互的特性.因此,有着不同于应用程序的调试方法,据统计Linux内核开 Linux内核驱动开发之KGDB原 ...

  6. mpvue 微信小程序_使用Vue.js开发微信小程序:开源框架mpvue解析

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 成全 责编 | 阿秃 转自 | 美团技术团队企业博客 前言 mpvue是一款使用Vue.js开发微信小程序的前端框架.使用此框架,开 ...

  7. elipse调试linux内核,debug eclipse cdt + qemu虚拟机调试linux内核

    debug eclipse cdt + qemu虚拟机调试linux内核 (17页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 A scr ...

  8. mac安装ios应用程序_如何在Mac上安装应用程序:您需要知道的一切

    mac安装ios应用程序 If you're switching to macOS from Windows, you might be confused about installing softw ...

  9. hp designiet 500绘图仪程序_邹军:通过数控宏程序实现刀具寿命管理

    点击上方,关注我哈 (文章底部可以评论,欢迎对文章进行点评和知识补充) 数控编程教学 订单 | 技术 | 干货 | 编程 关注可加入机械行业群 [邹军,十多年数控工作经验,现自创一套有理论,有干货,还 ...

最新文章

  1. 用了 3 年 Apollo,最后我选择了 Nacos,原因不多说了
  2. Centos 更改系统时间
  3. 科大星云诗社动态20210131
  4. 在谈PHP中的 抽象类(abstract class)和 接口(interface)
  5. 音视频技术开发周刊 | 170
  6. 复函数图像怎么画_...1等等.只需大致图象,和大致画法(根据原函数就能画出复合函数的...-复函数的图形-数学-禄凡闷同学...
  7. java解压缩.zip文件
  8. 在Github上搭建你的博客
  9. AcWing 900. 整数划分(完全背包计数问题)
  10. 农业银行王敬东——金融科技时代商业银行战略模式选择初探
  11. 获取 CSDN 1024 程序员节勋章教程
  12. 生成权重 transorflow:Early stoppting conditioned on metric `val_accuracy` which is not available
  13. vue 选项卡切换
  14. oracle数据库表空间容量查询及扩容
  15. ubuntu编辑只读文件_ubuntu怎么样修改只读文件
  16. 小女子做销售 四大温柔手段
  17. python 如何读取excel表格数据
  18. opencvsharp图像处理_腐蚀与膨胀,击中击不中变换(3)
  19. Excel高级使用技巧
  20. 天龙八部服务器维护几点开服,天龙八部开服时间表2020-开服时间表一览

热门文章

  1. 清华大学计算机与科学系张荷花简历,张敏(清华大学计算机科学与技术系副教授)_百度百科...
  2. 科达教育视频会议系统服务四川彭州教育系统
  3. 使用Scratch 3.0制作弹球游戏需求分析
  4. 一文读懂VMware虚拟化技术(含超融合)
  5. angular 数据加载完毕执行js方法
  6. iOS 【如何去除 UILabel 边缘异常黑线/阴影】
  7. 敬佩!2007年感动中国的解放军十大军人形象(图)。
  8. springmvc-day03
  9. Java_awt_图形用户界面GUI简单应用
  10. python 利用opencv把图片转化为素描图片