Arduino内核:使用gdbstub调试esp8266会导致gdb中出现SIGABRT
我试图找出如何使用Arduino Core中包含的Arduino内核:使用gdbstub调试esp8266会导致gdb中出现SIGABRT,arduino,gdb,remote-debugging,esp8266,arduino-esp8266,Arduino,Gdb,Remote Debugging,Esp8266,Arduino Esp8266,我试图找出如何使用Arduino Core中包含的gdbstub在esp8266上调试代码,如下所示 我已将一个非常简单的示例程序加载到我的esp8266 Amica NodeMCU 1.0板上,并添加了所需的Serial.begin和gdbstub\u init函数调用 #包括 #包括 /* ESP8266西蒙·彼得的《眨眼》 ESP-01模块上的蓝色LED闪烁 此示例代码位于公共域中 ESP-01模块上的蓝色LED连接到GPIO1 (这也是TXD引脚;因此我们不能同时使用Serial.pri
gdbstub
在esp8266上调试代码,如下所示
我已将一个非常简单的示例程序加载到我的esp8266 Amica NodeMCU 1.0板上,并添加了所需的Serial.begin
和gdbstub\u init
函数调用
#包括
#包括
/*
ESP8266西蒙·彼得的《眨眼》
ESP-01模块上的蓝色LED闪烁
此示例代码位于公共域中
ESP-01模块上的蓝色LED连接到GPIO1
(这也是TXD引脚;因此我们不能同时使用Serial.print())
请注意,此草图使用LED_内置来查找带有内部LED的管脚
*/
无效设置(){
序列号开始(115200);
gdbstub_init();
引脚模式(LED_内置,输出);//将LED_内置引脚初始化为输出
}
//循环函数永远反复运行
void循环(){
数码写入(内置LED),
低);//打开LED(注意,低是电压电平
//但实际上LED是亮着的,这是因为
//它在ESP-01上处于低激活状态)
延迟(1000);//等一下
数码写入(内置LED),
高);//通过使电压高来关闭LED
延迟(2000);//等待两秒钟(以显示激活的低电平LED)
}
当我将此代码加载到设备上并使用说明中概述的设置选项启动xtensa-lx106-elf-gdb
时,它会正确启动,并且我可以创建断点。但是,每当我试图跨过一行代码时(例如,第24行上的digitalWrite
),gdb就会崩溃并出现错误:
'xtensa-lx106-elf-gdb' terminated by signal SIGABRT (Abort)
当我跳过函数调用时,我不知道是什么导致它崩溃(我也能够用其他语句重现这一点)。有人知道如何解决这个问题吗