目录
要捋清楚源码,不得不说这个live555的风格还是很奇怪的,一段时间没动回过来看几乎又不知所云了,跑着跑着就崩溃了,所以这次准备在ubuntu 上,vscode 可视乎debug一下live555.
vscode, 完美替代甚至超出了source insight, 重要的是,免费,三平台通用,各种插件加持下不仅可以编辑,格式化,提示补全,还可以debug
VSCode中文网 - Visual Studio Code中文官网 VS Code编辑器中文网站 下载Linux版本
如果下载慢可以参考解决VsCode下载慢问题_wang13679201813的博客-CSDN博客_vscode下载慢
或者干脆复制下载连接用 迅雷下载也是可以的
下载完可以在文件管理器中右键用软件安装程序打开,即可像安装windows程序一样安装
需要两个关键的插件 c/c++ Makefiletools
打开一个.cpp 文件,右下角会自动提示建议安装插件,直接按照提示确认,装上了如下插件。
其中重要的就是在 c/c++ 插件,已经包括了gdb。 可以点击这个插件看介绍
发现Makefile文件,也会提示插件,于是再装上了 Makefile Tools插件(如果只是一个简单的 Makefile 一个目标,这个工具倒是可以直接编译+调试)
http://live555.com/liveMedia/public/
更多请参考<一 编译> ndk 编译live555 for android_王二の黄金时代的博客-CSDN博客
源码目录 live下执行
$ ./genMakefiles linux-gdb
执行上述命令后会生成Makefile 里面已经是 加了-g选项的。
在Makefile Tool 插件按钮, 点击左侧makefile 插件按钮,在二级菜单里面点击编译按钮开始编译并启动调试
如果编译提示 openssl 错误:两种解决办法:
1. 安装上openssl
2. 返回到第四步, 在config.linux-gdb COMPILE_OPTS 的后面添加上-DNO_OPENSSL=1 同时把文件里面的 -lssl -lcrypto 去掉。(这一步之前要改一下文件的属性,默认是只读的无法修改,用命令# chmod +w config.linux-gdb)重新执行$ ./genMakefiles linux-gdb生成makefile
如果是一个Makefile中一个目标,上图界面的三角形按钮应该可以直接开始debug这个程序了,但是当前的Makefile 比较复杂这个插件似乎是找不到目标了。需要手动修改 调试的配置文件 launch.json 加上我们要调试的可执行程序的路径。 让调试程序调用到正确的程序
在 打开的工程文件下,有一个隐藏目录 .vscode (vscode自动创建), 我们在这个c++ 调试二级菜单中可以添加配置,(这个是调试插件的功能),一般三个配置文件 launch.json setting.json task.json task.json 是用来编译的任务,也可以修改这个里面的编译条件,达到编译的效果。 我们现在已经可以编译通过了,所以可以直接修改这个task.json 让点击调试按钮的时候能够正确调用到待调试的程序。
一般这些文件不需要手动添加,会有提示
选择添加配置,c++ gdb会自动创建好:
然后修改启动的程序路径,比如我要运行编译出来的 demo文件在live/testProgs$/testOnDemandRTSPServer
task.json 文件如下:
其中只修改了一条:"program": "${workspaceFolder}/testProgs/testOnDemandRTSPServer",其他皆通过按钮点击提示生成。
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
-
- {
- "name": "(gdb) 启动",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/testProgs/testOnDemandRTSPServer",
- "args": [],
- "stopAtEntry": false,
- "cwd": "${fileDirname}",
- "environment": [],
- "externalConsole": false,
- "MIMode": "gdb",
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "将反汇编风格设置为 Intel",
- "text": "-gdb-set disassembly-flavor intel",
- "ignoreFailures": true
- }
- ]
- },
- {
- "type": "pwa-node",
- "request": "launch",
- "name": "Launch Program",
- "skipFiles": [
- "
/**" - ],
- "program": "${file}"
- }
- ]
- }
在源码里面,左侧编译双击即可添加点。 在调试debug二级菜单中点击那个绿色三角形按钮,启动调试,现在,可以愉快地debug了,栈信息,遍历值等等结合着源码看