RUST笔记 FireDBG| Rust 代码调试器

vscode中调试rust程序 (3)配置vscode编译:打开vscode,终端->运行任务->配置任务->使用模板生成task.json文件->others,会在工程目录的.vscode中生成tasks.json。也会在工程目录下的.vscode中生成一个launch.json文件。环境:在WSL(ubuntu20.04)中使用vscode。(2)在vscode中安装rust-analyzer。(4)配置vscode调试:点击vscode这里。(1)在WSL 中安装rust,cargo。 阅读详情

安装https://firedbg.sea-ql.org/blog/2023-12-12-introducing-firedbg/

在这里插入图片描述

更新VSCODE

在这里插入图片描述

在这里插入图片描述

  • sudo dpkg -i code_1.85.2-1705561292_amd64.deb
    在这里插入图片描述在这里插入图片描述

在这里插入图片描述

安装FireDBG binaries

在这里插入图片描述在这里插入图片描述

(base) pdd@pdd-Dell-G15-5511:~$ curl https://raw.githubusercontent.com/SeaQL/FireDBG.for.Rust/main/install.sh -sSf | sh

error: timeout

# This wraps curl or wget. Try curl first, if not installed,
# use wget instead. 
downloader() {
    if check_cmd curl # 检查是否存在 curl 命令
    then _dld=curl
    elif check_cmd wget # 检查是否存在 wget 命令
    then _dld=wget
    else _dld='curl or wget' # to be used in error message of need_cmd
    fi

    #要使用这个函数下载一个文件,可以这样调用:downloader "https://example.com/file.zip" "downloaded_file.zip"
    # 如果传递的第一个参数是 --check,则检查是否存在 _dld(curl 或 wget)命令
    if [ "$1" = --check ]
    then need_cmd "$_dld"
    # 如果 _dld 是 curl,则使用 curl 下载文件
    elif [ "$_dld" = curl ]
    then curl -sSfL "$1" -o "$2"
    # 如果 _dld 是 wget,则使用 wget 下载文件
    elif [ "$_dld" = wget ]
    then wget "$1" -O "$2"
    # 如果 _dld 不是 curl 也不是 wget,输出错误消息
    else err "Unknown downloader"   # should not reach here
    fi
}
  • 函数在代码中的调用downloader "$_url" "$_file"
  • 需要修改的配置
    local _url="https://github.com/SeaQL/FireDBG.for.Rust/releases/download/$_firedbg_version/$_arch.tar.gz"
    local _dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t FireDBG)" # $(...):这是 Bash 中的命令替换语法,表示将命令的输出结果嵌入到字符串中
    local _file="$_dir/$_arch.tar.gz"
  • 修改成如下
    local _url="https://github.com/SeaQL/FireDBG.for.Rust/releases/download/$_firedbg_version/$_arch.tar.gz"
    local _dir="/home/pdd/myrust/mytemp"  
    # local _file="$_dir/$_arch.tar.gz"
    # downloader "$_url" "$_file
  • 结构如下:
    在这里插入图片描述

安装成功:

  • FireDBG binaries will be installed in ~/.cargo/bin and a debugger self test will be conducted to verify the installation.
$ bash install.sh 
info: downloading FireDBG from `https://github.com/SeaQL/FireDBG.for.Rust/releases/download/1.75.1/x86_64-ubuntu22.04.tar.gz`
info: installing FireDBG binaries to `/home/pdd/.cargo/bin`
info: performing FireDBG self tests
    Updating crates.io index
  Downloaded firedbg-lib v0.1.2
  Downloaded 1 crate (2.2 KB) in 1.35s
     Tracing `firedbg.toml` config file not found, default settings will be applied
     Tracing debugger_self_test = { trace = "full" }
      Parsed 2 source files; re-cached 2 source files
   Compiling firedbg-lib v0.1.2
   Compiling debugger_self_test v1.75.1 (/home/pdd/.cargo/bin/firedbg-lib/debugger-self-test)
    Finished dev [unoptimized + debuginfo] target(s) in 1.02s
     Running `LD_LIBRARY_PATH="/home/pdd/.cargo/bin/firedbg-lib/lib" "/home/pdd/.cargo/bin/firedbg-debugger" "run" "/home/pdd/.cargo/bin/firedbg-lib/debugger-self-test/target/debug/debugger_self_test" "--workspace-root" "/home/pdd/.cargo/bin/firedbg-lib/debugger-self-test" "--output" "/home/pdd/.cargo/bin/firedbg-lib/debugger-self-test/output.firedbg.ss" "--package-name" "debugger_self_test" "--package" "./full"`
Testing call_chain
Testing for_range
Testing hash_map
Testing return_char
Testing return_enum
Testing return_value
Testing return_object
Testing return_option
Testing return_result
Testing return_struct
Testing return_pointer
Testing return_ref_mut
Testing fn_return
info: completed FireDBG self tests

基础使用

  • git clone https://github.com/SeaQL/FireDBG.Rust.Testbench.git

在这里插入图片描述

FireDBG,启动!

在这里插入图片描述在这里插入图片描述

运行Target

在这里插入图片描述

生成调用树Call Tree

在这里插入图片描述

点击可查看变量值和相关代码

在这里插入图片描述
在这里插入图片描述

windows系统下Rust环境搭建以及vscode调试环境配置 Rust的编译工具依赖C语言的编译工具。如果使用Linux系统,需要安装GCC或clang。如果使用macOS,需要安装Xcode。如果使用Windows系统,需要安装Visual Studio 2013以上的环境以使用MSVC或安装MinGW+GCC编译环境。下面主要讲Windows下的安装。推荐使用微软的VS IDE,输入1,继续安装。会直接进入MSVC下载安装界面,点击安装后,等待安装完成。MSVC安装完成后继续安装rustup。1. 如何判断Rust编译器使用的是哪个Windows工具链? 阅读详情

相关推荐

Rust报错“expected item“?代码块结构的可视化调试方法

Rust开发中常见的"expected item"编译错误通常由代码块层级混乱、作用域不匹配或语法元素缺失导致。本文结合实战经验,介绍了三类典型场景:模块与函数混淆、顶层代码块缺失和宏展开问题。推荐使用FireDBG、Compiler Explorer和Clippy等工具进行可视化调试,并提出结构化调试方法论:验证代码块层级、分析作用域链和调试宏展开。最后给出预防性开发实践,包括代码规范配置、CI/CD集成检查和模块化设计原则,建议构建"可视化-分析-预防"的闭环来提

shejizuopin的博客 1067

在VSCode中实现Rust编程调试指南

选择 IDE 是非常主观的,因此没有人能真正说一种工具绝对比另一种更好(如果他们这样做了,他们可能会让一些读者写下相当强烈的评论,争论为什么他们的特定选择比给定的建议更好。它的价格也合适(免费!如果您是处理 Rust 项目的团队的一员,您也可能会从另一个具有更好 Git 集成的 IDE 中受益。对于本文,考虑到社区的广泛使用以及它是免费提供的事实,我们将考虑如何在 VS Code 中调试 Rust 代码。VS Code 的另一个可能的问题是,与许多其他开发工具不同,它无法将编辑器中的选项卡撕到新窗口中。

极道Jdon的技术博客 1万+

horizon之为connection服务器配置证书

打开connection1服务器(connection2 同connection1)再输入connection1的IP地址 可通过域名和IP地址进行登录。这时候用域名登录就发现证书已经没有警告了。win+R 调出“运行”,输入mmc。connection2 同上。如果还有报错请重启一下服务器。打开connection1。可以把这个先删掉 没用。打开DC_01服务器。右键选择证书颁发机构。友好名称只能是vdm。重启之后就没有报错了。

送个祝福给小豪的博客 2960

Rust语言:安装、运行与调试

Rust是一种为系统编程设计的编程语言,它强调安全性、并发性和内存效率。本文将会介绍在多平台上安装Rust,以及如何运行和调试Rust程序。

qimablue的博客 2191

数学之美 | 图论和网络爬虫

文章目录概述图论网络爬虫分析BFSDFSBFS + DFS参考资料 概述 这篇文章主要给大家介绍一下计算机算法中非常重要的一部分——图论,以及它在生活中的应用——网络爬虫。   图论 离散数学是当代数学的一个重要的分支,也是计算机科学的数学基础。它又包括四个分支,而图论便是其中一支,另外三个分别是:数理逻辑、集合论、近代数学。 图论中的图由一些节点和边构成,比如下面这张图 。 在图论中一个很基础...

小小酥梨的博客 3231

从零开始了解数据采集(五)——工业通信协议:数据采集的“语言”桥梁

数据采集常用的通信协议有哪一些?看完这篇你就了解了~

李恒的博客 4058

【Rust日报】2023-12-12 FireDBG - 为 Rust 程序设计的时光旅行可视化调试工具

FireDBG - 为 Rust 程序设计的时光旅行可视化调试工具FireDBG 通过记录指令级数据来实现时间旅行调试,能够回溯源代码执行过程,帮助用户理解程序运行时的情况。FireDBG 的特点包括呈现函数调用树,追踪错误路径,收集函数参数和返回值,以及对 Rust 类型系统的支持。此外,它专注于用户代码调试,避免了标准库或第三方库的干扰。博客还展示了多线程程序调试的能力,并表达了将 FireD...

Rust语言学习交流 614

Python-OPCUA 实现西门子PLC数据批量读写与自动化监控

本文详细介绍了如何使用Python结合OPC UA协议,实现对西门子PLC数据的批量读写与自动化监控。通过搭建开发环境、利用KEPserverEX作为通信桥梁,并配合Python代码实战,读者可以掌握高效的数据采集、批量写入以及构建带报警功能的监控系统的方法,从而大幅提升工业自动化场景下的数据处理效率和系统灵活性。

www00的博客 181

FireDBG for Rust 调试工具安装指南

FireDBG 是一个专为 Rust 语言设计的高性能调试工具,它能够帮助开发者更高效地进行代码调试和问题排查。与传统的调试工具相比,FireDBG 提供了更直观的调试体验和更丰富的调试信息。 ## 安装前准备 在安装 FireDBG 之前,请确保您的系统满足以下要求: - 已安装 Rust 工具链(建议使用最新稳定版) - 具备基本的命令行操作能力 - 系统已安装 curl 工具 ## 自

gitblog_00673的博客 1017

1.4 《SST通用技术规范》整体框架与核心条款解读

本小节以**GB/T《电力电子变压器通用技术要求》**(固态变压器SST核心通用规范)为核心依据,结合电力电子变压器技术特性与工程应用边界,系统解析规范的整体章节框架、层级逻辑与强制性/推荐性核心条款,明确规范与传统工频变压器标准的差异,为SST拓扑设计、性能验证、出厂检验与工程落地提供标准化依据。全文以标准原文、期刊文献数据与试验规范为支撑,无主观推演与感性表述。

技术工作者 1683

Halcon频域滤波实战:5分钟搞定傅里叶变换与功率谱分析(附完整代码)

本文提供Halcon频域滤波的实战指南,重点讲解如何利用傅里叶变换与功率谱分析快速解决图像处理难题。通过核心算子fft_image和power_real,演示了从空间域转换到频域、分析功率谱以定位周期性噪声,并构造滤波器进行精准去除的完整流程,附有可直接运行的代码示例。

docker8compose的博客 215

如何使用FireDBG.for.Rust:从安装到断点调试的完整入门指南

FireDBG.for.Rust是一款专为Rust开发者打造的时间旅行可视化调试器,能够帮助开发者高效定位和解决代码中的问题。本指南将从安装配置到断点调试,带你全面掌握这款强大工具的使用方法,让你的Rust调试工作变得简单而高效。 ## 快速了解FireDBG.for.Rust FireDBG.for.Rust作为一款专业的Rust调试工具,其核心功能是提供时间旅行调试能力,让开发者可以回溯程

gitblog_00035的博客 752

转录组数据去批次方法整理(combat,combat-seq,removeBatchEffect)

正是因为这些非生物学的因素存在就有可能会导致我们的结果偏离真实的情况,那么实际分析的过程中研究者应当评估是否存在批次效应,并决定是否要进行去批次处理。批次效应是指样本在不同批次处理及测量的情况下引入与生物学情况不相关的技术误差,比如不同试剂耗材,不同操作者,不同的实验时间等。combat函数是基于贝叶斯框架下的调整数据批次效应的函数,主要适用于已经被过滤和标准化后的数据(combat-seq函数是基于二项回归分布下的调整数据批次效应的函数,主要适用于。值得注意的是,即使使用了所谓的去批次效应的工具,

zfyyzhys的博客 7862

本周Github上6个有趣的项目如FireDBG等

相反,我们都喜欢println到处添加,运行程序,添加更多打印,冲洗并重复,只是为了发现我们仍然没有打印关键变量,甚至可能需要在淹没时猜测程序状态在日志中。我们认为,在本地(且私下)运行模型至关重要:任何实体都不应能够控制世界上第一个人工智能系统,也不能控制您的个人想法,无论它们多么“开放”。Reor Project是一种个人知识管理工具,可以利用人工智能自动组织知识:它将相关的想法连接在一起,提供语义搜索并利用知识库中所有内容的完整。我建议从 7B 4 位模型开始,看看它在您的系统上的性能如何。

极道Jdon的技术博客 1017

(遇到问题)(已解决)word敲入的公式转化为mathtype

https://www.mathtype.cn/wenti/wordgongshi-zhuanhuan.html 现在越来越多的人在文档中编辑公式的时候会选择MathType来编辑,因为它包含有众多的数学符号和模板,编辑公式时非常方便。但是也有一些人在编辑公式时没有使用MathType公式编辑器,直接使用Word中自带的公式编辑器来编辑的。当我们需要要共享一份文件的时候,这种用自带公式编辑器编辑出来的文件,在我们安装有MathType公式编辑器的电脑里打开时,双击公式没有反应,是无法对它们进行修改的.

计算机视觉 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

基础能力系列 - GDB的使用

将涵盖以下内容: - GDB for C/C++ - GDB for Go - GDB for Rust

搬砖魁首的博客 2287

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Ubuntu下VScode 使用上卸载+安装+连接超时间

分两种。

Summer_crown的博客 967

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

rust结构体

和大多数语言一样,rust也提供了结构体。一个结构体定义如下所示: 其中,struct是定义结构体的关键字,User是该结构体的名称,active,username,email,sign_in_count是结构体中的字段,并且给每个字段声明了类型。注意,定义结构体结束的时候没有分号。上面只是定义了一个名为User的结构体,我们要创建相应的实例才能使用。在实例化结构体的时候需要注意:下面是实例化的一个例子: 访问结构体中的字段 和C/C++类似,访问结构体中的字段使用.运算符。例如: 简化结构体创建 当函数参

zy010101博客 1038

ubuntu18.04上安装vscode

vscode每个月发布一个稳定版本。截止到2024年10月30日,vscode的版本为,遗憾的是,它并不支持ubuntu18.04系统。支持ubuntu18.04系统且版本最高的是点击上图箭头所指位置下载软件安装包。

YMWM_的博客 3584

2311rust,到35版本更新

2311rust,到35版本更新

个人进步之路 751

Using rust-gdb to debug rust (by quqi99)

作者:张华 发表于:2022-01-29 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.youkuaiyun.com/quqi99 ) 问题 开始接触Rust, 刚读完一章,先把环境搭起来。 Rust是什么 虽只读完一章,对Rust的基本认识是: 如果说Go是为了方便并发程序的编写(使用了greenthread), 那么Rust解决的是内存安全和并发安全问题。并发安全通常也是由内存安全造成的。这里先说说内存安全。 那么,什么是内存安全呢?简单来说,就

技术并艺术着 1443

104、掌握Rust测试与调试:确保软件质量与性能

本文介绍了Rust语言的测试与调试方法。首先阐述了单元测试、集成测试和系统测试的编写方式,强调了断点和日志在调试过程中的重要作用。随后,通过实际应用场景和技巧,展示了如何使用Rust进行有效的测试与调试。最后,强调了Rust社区提供的丰富工具和crate对于提高开发效率和软件质量的重要性。

silenceallat的博客 1369

(Rust调试黑科技):GDB配合LLDB实现无缝跨平台问题追踪

掌握Rust调试难题?本文深入解析Rust GDB 用法,结合LLDB实现跨平台无缝追踪,适用于复杂项目中的崩溃定位与内存分析。通过统一调试流程提升效率,支持多平台协同开发,调试利器组合值得收藏。

DeepLens的博客 745

PC-Ubuntu

虚拟机上安装Ubuntu的常用设置

gaoxukkk888的博客 1003

《Rust 语言程序设计》笔记第四章-结构体

四、结构体 1、定义并实例化结构体 定义和实例化 定义 定义结构体,需要使用 struct 关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。 struct User { username: String, email: String, sign_in_count: u64, active: bool, } 实例化 通过为每个字段指定具体值来创建这个结构体的 实例。创建一个实例需要以结构体的名字开头,接着在大括号中使用 key: value 键-值

z4652552的博客 325

Ubuntu 18.04安装最新版Visual Studio Code(VS Code)报依赖库版本过低错误

在Ubuntu 18.04系统上安装VS Code ≥ `v1.86.2`(测试到`v1.87.1`)时,会报出`libc6`、`libgssapi-krb5-2`、`libxkbfile1` 依赖库版本过低的问题。

发布工作学习过程中遇到的问题和解决方案 2万+
上一篇: 【github 使用相关】GIT BASH : github ssh ssh-keygen + 配置登录github + 解决代码拉取错误
下一篇: RUST笔记:candle使用基础
FakeOccupational
博客等级 码龄6年 2万+粉丝 1727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值