小编Dra*_*ght的帖子

Meltdown 和 Spectre 之间有什么区别?

最近发现的硬件漏洞 Meltdown 和 Spectre 之间的主要区别是什么?我知道它们都依赖于投机执行,但它们之间有何不同?

caching processor intel speculative-execution spectre

8
推荐指数
1
解决办法
2513
查看次数

如何在 QEMU 中模拟 SATA 磁盘驱动器

我想在 QEMU 中模拟 SATA 磁盘驱动器以检查我正在尝试开发的设备驱动程序。如何才能做到这一点?非常感谢您的帮助。

qemu sata device-emulation

6
推荐指数
1
解决办法
8769
查看次数

如何使用 rustc-env 标志指定环境变量?

我想设置rustc-env=VAR=VALUE以便我可以env::var("VAR")在我的代码中使用它。但是,我不清楚在哪里指定它。我可以VAR在 Makefile 中设置环境变量吗?

rust

6
推荐指数
1
解决办法
4073
查看次数

识别 LLVM 过程中带注释的变量

如何识别 LLVM 过程中带注释的变量?

#include <stdio.h>

int main (){
int x __attribute__((annotate("my_var")))= 0;
int a,b;
x = x + 1;
a = 5;
b = 6;
x = x + a;

return x;
}
Run Code Online (Sandbox Code Playgroud)

例如,我想识别具有带注释的变量(在本例中为 x)的指令并将其打印出来(x = x+1;和 x = x+a)我怎样才能实现这一点?

这是使用 LLVM 生成的 .ll 文件

    ; ModuleID = 'test.c'
source_filename = "test.c"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64"

@.str = private unnamed_addr constant [7 x i8] c"my_var\00", section "llvm.metadata"
@.str.1 = private unnamed_addr constant [7 x i8] c"test.c\00", …
Run Code Online (Sandbox Code Playgroud)

llvm llvm-ir

5
推荐指数
1
解决办法
1713
查看次数

了解 Objdump 中反汇编的二进制文件 - 输出中的字段是什么

当我使用命令“arm-linux-gnueabihf-objdump -d a.out”反汇编一个简单的 ARM 二进制文件时,得到以下输出

00008480 <_start>:
8480:   f04f 0b00   mov.w   fp, #0
8484:   f04f 0e00   mov.w   lr, #0
8488:   bc02        pop {r1}
848a:   466a        mov r2, sp
Run Code Online (Sandbox Code Playgroud)

这里不同的列代表什么?例如,8480 和 f04f 0b00(来自代码的第二行)

binaryfiles objdump disassembly

4
推荐指数
1
解决办法
1535
查看次数

如何降级或安装我用`cargo install`安装的旧版工具?

我想在我的机器上安装Xargo v0.3.10.当前版本的Xargo是v0.3.11,它由cargo install xargo命令安装.如何安装旧版Xargo?

rust rust-cargo

3
推荐指数
1
解决办法
880
查看次数

构建脚本可以接受参数吗?

我正在浏览构建脚本文档,想知道是否可以build.rs从命令行将任何参数传递给脚本。

fn main() {
    let args: Vec<String> = env::args().collect();
    let var = &args[1];
}
Run Code Online (Sandbox Code Playgroud)

这样的东西会在构建脚本中工作吗?我怎么能从命令行指定参数?

rust

2
推荐指数
1
解决办法
633
查看次数

Rust与C中的冒号运算符有什么相似之处?

如何在Rust中表示这种代码?

uint8_t  pmport:4;  
uint8_t  rsv0:3;        
uint8_t  c:1;       
Run Code Online (Sandbox Code Playgroud)

我想将这3个值打包成一个u8.如何在Rust中实现这一目标?

rust

1
推荐指数
1
解决办法
157
查看次数

如何将std :: fmt :: Arguments转换为字符串?

我想将a转换std::fmt::Arguments为字符串类型.但是,由于字段Arguments是私有的,我无法直接将其转换为字符串.

rust

1
推荐指数
1
解决办法
105
查看次数

是否可以在编译时从环境变量初始化变量?

我想在编译期间初始化一个变量。例如,我想初始化变量VAR,以VALUE编译代码时:

match env::var("VAR") {
    Ok(value) => println!("Ok {}", value),
    Err(e) => println!("Error ({})", e),
};
Run Code Online (Sandbox Code Playgroud)

但是,我想在no_std上下文中执行此操作,因此无法用于std::env访问环境。是否有可能做到这一点?

compile-time-constant rust

1
推荐指数
1
解决办法
1692
查看次数