Sphere SDK for vs code中的不可见和锁定断点

问题描述 投票:0回答:1

我正在尝试开始进行Microsoft的Azure领域开发。

[当我尝试调试vs代码中的任何starter projects时,它告诉我在应用程序的第一行设置了一个断点。但是,vs代码在“断点”选项卡中没有显示任何断点。

我正在Windows 10上运行带有Azure Sphere Extension 20.1的最新VS代码版本(1.44)。在Linux上也会出现相同的问题。

重现该错误:

  1. 从github下载starter projects
  2. 安装用于Visual Studio代码的Azure Sphere扩展。
  3. 在Visual Studio代码的azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp中打开HelloWorld_HighLevelApp文件夹。
  4. 转到“调试”标签,然后点击左上角的绿色播放按钮。按钮旁边应显示Launch for Azure Sphere High-Level Applications (gdb)

对我来说这不是错误,但输出控制台显示:

Deploying image...
Starting debugger....

Process /mnt/apps/1689d8b2-c835-2e27-27ad-e894d6d15fa9/bin/app created; pid = 2233
Listening on port 2345

Remote debugging from host 192.168.35.1, port 54911

Starting CMake Hello World application...

调试控制台显示:

...
Breakpoint 1, main () at ../../main.c:45
45  {
Loaded 'target:/usr/lib/libapplibs.so.0'. Symbols loaded.
Loaded 'target:/lib/libgcc_s.so.1'. Symbols loaded.
Loaded 'target:/usr/lib/libc++runtime.so.1'. Symbols loaded.

是否有解决方案/解决此问题的计划?

azure iot azure-iot-hub azuresphere
1个回答
0
投票

Azure Sphere使用gdbserver为设备提供调试通道。 gdb的默认行为是在输入main时中断。这可能会使Windows上希望运行断点行为的人(在Visual Studio中很常见)感到困惑。对于与GDB的接口,我们有意无声地跳过在Visual Studio中输入main的断点以保持一致。您实际上可以在调试日志输出窗口中看到该断点。

对于VS Code,当您在Windows上时,我们也会跳过main上的断点。从上面的输出中看来,您正在Linux上。我已经有几周没有在Linux上使用它了,所以无法回忆起是否故意改变了行为。对我来说,在Linux上中断进入main是有意义的,因为这是使用GDB时的普遍期望,而GDB在Windows中比在Windows上更为普遍。我会检查这是否是设计使然,然后回复,但我怀疑是。

© www.soinside.com 2019 - 2024. All rights reserved.