TA的每日心情 | 难过 2017-4-18 09:57 |
---|
签到天数: 7 天 连续签到: 1 天 [LV.3]偶尔看看II
|
系列阅读:https://jingyan.eeboard.com/category/53
乘热打铁,在上篇 “EclipseCDT搭建开发环境”后再尝试在Eclipse中远程调试 BBB。
1. BBB中安装gdbserver
2.在远程宿主机安装gdb-multiarch
3.启动gdbserver 并在端口12345监听,
在SSH terminal中输入 gdbserver 192.168.1.105:12345 helloTest, 指定目标板的IP和监听端口号,
下图所示gdbserver已经正常启动了,并等待客户端程序gdb的连接。
4. 选中Project Explorer ->Debug 右击其下生成的可执行文件,-> debug as -> debug configuration, 选中debugger选项卡
GDB debugger 中Main 选项卡中输入 gdb-multiarch
在connection中输入目标机IP 和监听端口 ,点击debug进入debug 界面,可设置断点,查看变量,右上为变量和断点查看的地方
可使用全速,单步执行
初始界面
运行到断点处
以下是测试样例,现象与程序逻辑一致。 有图形界面辅助调试确实有有助调试,不过也不是没有缺点的,
个人试用后发现单步执行速度似乎有些慢,不知道大家是怎样看待看待和处理这个问题的。
#include <iostream>
#include <stdio.h>
using namespace std;
#define FPATH "/sys/class/leds/beaglebone:green:usr3/brightness"
#define BUFSIZE 50
int main() {
cout << "LED 3 starts flashing" << endl;
FILE *LEDHandle = NULL;
int i;
int num;
// char *LED1Brightness = "/sys/class/leds/beaglebone:green:usr3/brightness";
for(i=0; i<10; i++)
{
if((LEDHandle=fopen(FPATH, "w+"))!=NULL)
{
num=fwrite("1", sizeof(char), 1, LEDHandle);
fclose(LEDHandle);
cout << num<< endl;
sleep(1);
}
else
{
printf("open failed");
}
if((LEDHandle=fopen(FPATH, "w"))!=NULL)
{
fwrite("0", sizeof(char), 1, LEDHandle);
fclose(LEDHandle);
sleep(1);
cout << "turn off" << endl;
}
}
cout << "LED 3 ends flashing" << endl;
return 0;
} |
|