当前位置: 首页 > news >正文

vscode调试container(进行rocksdb调试)

vscode调试container(进行rocksdb调试)


参考链接:

https://blog.csdn.net/qq_29809823/article/details/128445308#t5

https://blog.csdn.net/qq_29809823/article/details/121978762#t7

使用vscode中的插件dev containners->点击左侧的远程资源管理器打开运行rocksdb的容器配置以下文件即可

#命令行编译通过调试cpp为可执行文件,通过设置launch.json和f5进行debug
root@62db0822831f:/# find . -name "librocksdb*"
./usr/lib/x86_64-linux-gnu/librocksdb.so
./usr/lib/x86_64-linux-gnu/librocksdb.a
./usr/lib/x86_64-linux-gnu/librocksdb.so.8
./usr/lib/x86_64-linux-gnu/librocksdb.so.8.8.0
./home/baum/rocksdb_all/rocksdb/build/librocksdb.so
./home/baum/rocksdb_all/rocksdb/build/librocksdb.a
./home/baum/rocksdb_all/rocksdb/build/librocksdb.so.8
./home/baum/rocksdb_all/rocksdb/build/librocksdb.so.8.8.0
./rocks/rocksdb/build/librocksdb.so
./rocks/rocksdb/build/librocksdb.a
./rocks/rocksdb/build/librocksdb.so.8
./rocks/rocksdb/build/librocksdb.so.8.8.0root@62db0822831f:/home/baum/rocksdb_all/rocksdb/test_util/test# g++ -g main.cpp -o example -std=c++17 -L/home/baum/rocksdb_all/rocksdb/build -lrocksdb
root@62db0822831f:/home/baum/rocksdb_all/rocksdb/test_util/test# ls
example  main.cpp

通过设置tasks.json来定义编译任务,通过ctrl+shift+B来运行默认的构建任务;配置launch.json文件指定如何启动和调试程序

//c_cpp_properties.json
{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/include/rocksdb",  // 如果rocksdb的头文件位于此处,否则调整为实际的头文件路径"/home/baum/rocksdb_all/rocksdb/include"  // rocksdb源代码的头文件路径],"defines": [],"compilerPath": "/usr/bin/g++","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}
//tasks.json
//task:g++ -g main.cpp -o example -std=c++17 -L/home/baum/rocksdb_all/rocksdb/build -lrocksdb
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build test cpp","type": "shell","command": "g++","options": {"cwd": "${workspaceFolder}/rocksdb/test_util/test" //可执行文件的目录},"args":["-g","main.cpp","-o","example","-std=c++17","-L/home/baum/rocksdb_all/rocksdb/build","-lrocksdb"],"group":{"kind": "build","isDefault": true}}]
}
//launch.json
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${workspaceFolder}/rocksdb/test_util/test/example", //可执行文件"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}
//rocksdb测试代码,因为rocksdb没有客户端和服务器,所以没有办法gdb attach process_id
//https://rocksdb.org/docs/getting-started.html
//关于打开数据库
//main.cpp
#include <cassert>
#include "rocksdb/db.h"int main(int argc, char* argv[]) {rocksdb::DB* db;rocksdb::Options options;options.create_if_missing = true;rocksdb::Status status =rocksdb::DB::Open(options, "./testdb", &db);assert(status.ok());return 0;
}
http://www.lryc.cn/news/197164.html

相关文章:

  • 从恐怖到商机:2023万圣节跨境电商如何打造鬼魅消费体验?
  • 修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库,k8s)
  • 从实时数据库转战时序数据库,他陪伴 TDengine 从 1.0 走到 3.0
  • 颠覆传统有线通讯,虹科IO-Link wireless解决方案让智能机床的旋转部件实现可靠低延迟无线通信
  • 链表 oj2 (7.31)
  • python案例:六大主流小说平台小说下载
  • 前端已死!转行网络安全,挖漏洞真香!
  • 【AI】了解人工智能、机器学习、神经网络、深度学习
  • 【Axure高保真原型】3D柱状图_中继器版
  • 【word技巧】word页眉,如何禁止他人修改?
  • Python 机器学习入门之逻辑回归
  • 现货白银赚钱有风险吗?
  • Debian衍生桌面项目SpiralLinux12.231001发布
  • 元宇宙在技术大爆炸时代迎来链游新世界
  • 9中间件-Redis、MQ---进阶
  • JVM(Java Virtual Machine)内存模型篇
  • 对地址解析协议ARP进一步探讨
  • java:java.util.StringTokenizer实现字符串切割
  • IPV6 ND协议--源码解析【根源分析】
  • Python学习笔记——存储容器
  • Android DI框架-Hilt
  • 基于寄生捕食优化的BP神经网络(分类应用) - 附代码
  • 【Java常见的几种设计模式】
  • jupyter崩溃进不去,报错module ‘mistune‘ has no attribute ‘BlockGrammar‘
  • windows terminal鼠标右键打开
  • HTML5播放 M3U8的hls流地址
  • leetcode:101.对称二叉树
  • UI自动化的适用场景,怎么做?
  • SpringFramewrok (1)
  • 电商独立站小程序开发方案