使用Visual Studio 利用WinGDB编译和远程调试嵌入式(2)

Project build command: make
Project rebuild command: make clean; make
Project clean command: make clean
Project deploy command:
Build working directory: /root/ct/src/
Build environment variables: BUILD_CONFIGURATION="Debug"
Build before start debugging: Build project
Deploy before start debugging: yes
Deploy action: Transfer file to target
Deploy only if file changed: yes
Files to deploy: /root/ct/src//EMRCV4
Deploy target directory: /mnt/EMRCV4/BIN
Core file path:
Working directory: /mnt/EMRCV4/BIN
Arguments:
Environment variables:
Stop in main(): no
Target specification:
Server mode: Launch executable
Executable on target: /mnt/EMRCV4/BIN/EMRCV4
Launch GDB server automatically: yes
Launch server from sysroot: no
Path to gdbserver: /usr/bin/gdbserver
Server port: 2345
Server port is forwarded: no
Forwarded server port: 0
Executable path: /root/ct/src//EMRCV4
Byte order: Little endian
Initialization script:
Additional source directories:
Debug info directory:
Sysroot on host:
Sysroot on target:
Shared library directories:
Visualizer profile:
Load sources from build host: no
Disable hang reporter: no
Debugger path: /usr/bin/arm-unknown-linux-gnueabi-gdb
Build toolchain paths:
Intercept standard IDE commands: yes
Target type: Linux indirect debugging (SSH+remote target)
Debug host login: root@192.168.50.178:22
Build host login: root@192.168.50.178:22
Debug target login: root@192.168.50.58:22

至此完成项目的调试和编译配置

第三部、代码映射配置

此时输出窗口中会输出如下内容:

--------------------------------------------------------------------------------                         Transfer to remote host(s) --------------------------------------------------------------------------------

Errors were encountered during preparation: No files could be copied.

Could not map the path: D:\Works\RHY\Toll\Trunk\src\FunctionAssembly\Lane\EMRCV4\EMRCV4.vcxproj to remote filesystem. Use 'Map source directories' option to setup a mapping.

如果出现, 则打开代码映射窗口

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

然后在下面添加一个Login , 再选择添加一个映射, 如图:

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

下面是编译时的效果, 由于编译器错误等级原因, 第一次编译会有很多错, 第二次编译则错误消失 ,

如图:

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

调试时 , 启动时会弹出下面的窗口, 点确定即可, 不用理会

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

下面是调试过程的情况, 可以查看运行时当前进程的局部变量和鼠标下面的变量值, 这个跟VS一样, 也可以单步执行。

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

第四步:头文件引用 , 上图中你可以看到很多常量和函数都有红线, 是因为VS找不到对应的头文件, 因此需要继续做些设置。

打开项目属性, 选中配置属性, 选中VC++目录,然后在包含目录中加入 交叉编译环境中的头文件,比如:

D:\Works\Linux\toolchain_R2_EABI\usr\arm-unknown-linux-gnueabi\sysroot\usr\include

然后, 你需要把你所有头文件的目录全部添加在这里, 如果头文件目录比较多, 就比较费劲。

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

设置完后你会看到VS正在解析头文件, 设置后效果如下: 

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

最后, 如果向导设置有问题或者没有保存, 可能是由于不是管理员权限的原因, 因此你可能需要检查下你的配置,

方法如下图:

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

常规设置 debug host 和 build host 一样

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

环境中设置调试器路径

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

调试选项中, 要选择好生产的可执行文件 和 在 目标机器上的 应用程序工作目录

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

调试目标

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

gdbserver 设置

使用Visual Studio 利用WinGDB编译和远程调试嵌入式

下面一步很关键, 是项目生成设置, 生成目录必须和路径映射中的路径一直, 否则报错的错误无法定位文件位置,

第七栏中设置 调试前生成项目, 第八项设置调试前需要部署, 第十项设置 部署操作为传送文件至目标,

第十一项选择是, 当文件改变则部署, 第十二项决定要部署的文件, 第五项是 要部署的文件位置。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4022a388f44ce38d24ea527baacd000d.html