msys2 结合 vscode 使用 lldb 进行调试及 lldb-mi.exe 问题
默认 clang++.exe 环境生成的调试 launch.json 文件使用的 lldb-mi.exe 问题
clang
和 lldb
通过 pacman
安装。
pacman -Sy mingw-w64-x86_64-clang
pacman -Sy mingw-w64-x86_64-lldb
F5 进行调试,选择 clang++
自动生成的 tasks.json
和 launch.json
,使用的调试器是 lldb-mi.exe
,通过 msys 源安装的 clang
没有这个文件,google 一番llvm
已经将这个工具单独的剥离出去。
clone
源码。
cd lldb-mi
mkdir build && cd build
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -G "MSYS Makefiles" ..
make
polly
库依赖问题
cmake
执行的时候,会报错:
The imported target "PollyISL" references the file"D:/msys64/mingw64/lib/libPollyISL.a"but this file does not exist. Possible reasons include:
原因是依赖polly
库,安装即可。
pacman -Sy mingw-w64-x86_64-polly
MSYS Makefiles
生成器
MSYS Makefiles
生成器使用 make 来构建,如果是MinGW Makefiles
生成器,使用 mingw32-make
来构建。
构建完毕,在 build
的 src
目录下,就有 lldb-mi.exe
,复制到 lldb.exe
所在的目录,便能正常的进行调试。
删除目录下的 .vscode 文件夹,按 F5,环境选 GDB/LLDB
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEYZPCrN-1617551299628)(D:\project\code_project\pic\vscode\debug\lldb.jpg)]
配置选 clang++.exe
.
TERMINAL
窗口输出调试的参数,显示正常进入调试模式。
DEBUG CONSOLE
窗口可用来执行 lldb
的调试命令。
此时,在 DEBUG CONSOLE
下执行调试命令,需要使用 -exec command
.
问题
部分调试信息显示的不正确,这里 vec
的大小正确的为 13,截图处显示的是 1;原因未明。
规避 lldb-mi.exe
使用CodeLLDB
插件来解决。
首先,在菜单 Terminal
-> Configure Tasks
为 clang++
生成一个单独 tasks.json
文件。
然后,在菜单 Run
-> Add configuration
生成 launch.json
时,选择环境里会多一个LLDB
的选项,使用这个选项生成的 launch.json
配合第一步生成的 tasks.json
就能使用 lldb
进行调试。
生成的launch.json
如下。需要手动修改可执行文件的名字:program
项和添加调试前执行的任务:preLaunchTask
项。
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "lldb","request": "launch","name": "Debug","program": "${workspaceFolder}/${fileBasenameNoExtension}.exe", //手动改<your program>为${fileBasenameNoExtension}.exe"args": [],"cwd": "${workspaceFolder}","preLaunchTask": "C/C++: clang++.exe 生成活动文件" //本句前置执行的任务为手动添加,任务的名称和tasks.json中label值保持一致。},]
}
此时进入调试模式,只有 debug console 有输出,terminal 窗口是没有输出的。
此时,在 DEBUG CONSOLE
下执行调试命令,直接使用 command
即可,比如图中的运行到下一行 n
命令。
msys2 结合 vscode 使用 lldb 进行调试及 lldb-mi.exe 问题相关推荐
- windows环境下 VSCode的安装和调试
作者 @kaka VSCode的安装和调试 1. 下载安装包 去官网下载安装包直接安装,安装包下载地址 安装就是傻瓜式安装,有选项的就全选. 2. 下载配置编译器 因为VSCode只是一个功能强大的记 ...
- XCode调试器LLDB
与调试器共舞 - LLDB 的华尔兹 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一 ...
- Bug调试(lldb)
原文网址:http://www.cnblogs.com/Twisted-Fate/p/4760156.html 今天博主有一些Bug调试的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. X ...
- iOS之LLDB常用调试命令
LLDB是个开源的内置于XCode的调试工具,这里来理一理常用用法. lldb对于命令的简称,是头部匹配方式,只要不混淆,你可以随意简称某个命令.结果为在xcode下验证所得,可能与其它平台有所误差. ...
- vscode使用wsl远程调试linux代码
vscode现在可以使用远程调试功能 ,可以通过ssh连接远程服务器,使用容器或者使用wsl,本地vscode作为人机接口,实际的代码和调试程序都在远程运行. 现在将我使用wsl过程和碰到的问题记录下 ...
- lldb +debugserver调试环境部署
因为Apple已经弃gdb投lldb,所以随着我动态调试的次数越来越频繁,gdb上一个接一个的bug经常会让人很恼火.既然苹果打算建立自己的调试器王国,也投入了钱力精力,那我们干脆也上手lldb玩玩, ...
- 在vscode中加参数调试-python
在vscode中加参数调试-python 有时会遇到需要带有命令行参数的debug,因此需要在vscode的配置文件lanuch.json中添加命令行参数 解决方案 1.首先需要找到lanuch.js ...
- 使用VsCode进行ROS程序调试
使用VsCode进行ROS程序调试 安装相关插件 创建调试配置文件 启动调试 安装相关插件 首先在VsCode中安装相关插件 最重要是安装ROS插件,请注意是微软发布的版本 创建调试配置文件 点开RO ...
- VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序
基本流程跟我的另一篇文章<VsCode + gdb + gdbserver远程调试C++程序>一样,不一样的是需要重新编译gdb和交叉编译gdbserver. 一.准备工作 sudo ap ...
最新文章
- 组合逻辑与lamda算子的历史 英文
- HDU 2822 Dogs【两次bfs】
- node php聊天室,最简单的Nodejs聊天室示例
- 解决RabbitMQ service is already present - only up...
- 【MyBatis框架】mybatis逆向工程自动生成代码
- WinForm 生产环境、测试环境 多配置-App.config(分享)
- mysql5.5默认引擎,在MySQL5.5以上系统中,默认的存储引擎是( )。
- MySQL 数据库性能调优
- 软考数据库系统工程师教材改版啦
- 图书馆图书借阅登记微信小程序管理软件系统开发制作
- oracle查询优化不走缓存,Oracle彻底优化——优化内存
- 得到知乎注册进行体验,谈谈感受
- 打印机出现另存为xps_win10系统打印文件弹出另存为xps/pdf的处理方法
- launcher3的具体学习
- 计算机专业助我成长作文600,梦想助我成长作文600字
- java数据离散化模板
- prometheus 告警配置以及配置项解释
- android双屏不同apk,双屏可折叠 通吃.exe和.apk 微软终于发大招了!
- Linux 的磁盘挂载 | 详解
- wxappUnpacker 微信小程序反编译 2019 9月使用问题总结