gdb调试(ARM+Linux)中的gdbserver该怎么理解呢?

origin: http://zhidao.baidu.com/link?url=TGqu9ntKm3JAy_lQuzsvAZcw3_WdOdaX4LmsNPB_Sc2XZcXhgEQ3SSzRyYMNpnAtu8gGOEs9Y3hPnX82me6kg1lDmnAbnHVjW1QQMPAKpTm

PC端安装的jlink gdbserver,segger官方手册里的框图如下:

但是很多博客都有这样的描述:

“在pc机上要运行gdb,在开发板上运行gdbserver。gdb调试的时候,pc机上的gdb向开发板上的gdbserver发出命令,而开发板上的gdbserver就会向应用程序发出信号,使应用程序停下来或者完成其他一些工作!由此我们知道,pc机上要运行gdb,开发板上要运行gdbserver!”


按框图来说,gdbserver不是在PC端的吗,怎么是在开发板了,调试的时候也没有将gdbserver装入开发板呀?求指点。

hyw322 | 浏览 1096 次 2014-08-24 17:49
2014-08-25 14:28 最佳答案
1、ARM硬件内核嵌入了能够响应J-Link命令的调试模块(用户无法修改,也不需要额外烧录程序);
2、在调试过程是,由ARM内嵌的调试模块来执行和响应Linux下的gdb调试软件(工具),所以有些人把它称为gdbserver;
3、而linux中的软件很多都是服务器+用户的模式(不明白的可以直接忽略这个表述),Linux中的gdb在自己的软件架构有一个虚拟的服务器(就是上图中的GDB Server),其与博客上的gdbserver不是一个东东;
4、我个人也不认同有些博客中的那种说法,但也不能说他们是错的,因为从宏观的角度讲,ARM硬件内核嵌入调试模块正是为gdb服务的,因此称之为gdbserver也有些道理,只不过这样一来,给造成不必要的误解!
******希望我的解释对你有帮助!
追问

第1条可以理解。

第2条的意识是ARM内嵌调试模块即为gdbserver。但是我说的gdbserver是随jlink一起安装的呀,如下:

第3条说的是linux,我用的是windows xp。

第4条,按照jlink官方的说法,貌似gdb不能直接调试ARM内核,需要gdbserver的解析,以gdbserver为中间体才可以与ARM内核通信。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值