# CLI 参考 ## 用法 ```console $ rvrun [-g PORT] [-L SYSROOT] [-0 ARGV0] [args...] ``` 程序可以写成路径,也可以写成在 `$PATH` 中查找的名字;它之后的所有参数都属于客户程序。`#!` 指向 riscv64 解释器的脚本会通过启动该解释器来运行。 ## 选项 - `-g PORT` —— 运行前在 `127.0.0.1:PORT` 上等待 GDB 远程连接,客户程序停在入口点,类似 `qemu-riscv64 -g`。端口设为 0 时会自动选择一个空闲端口并打印出来。 - `-L SYSROOT` —— 优先在该目录中解析客户程序的绝对路径(动态加载器、库文件、`/etc` 配置), 类似 `qemu-riscv64 -L`;也可以用 `RVRUN_SYSROOT`。 - `-0 ARGV0` —— 将 ARGV0 作为客户程序的 `argv[0]`,而非路径;用于客户程序通过 `execve` 启动新的 `rvrun` 时。 ## 环境变量 - `RVRUN_STRACE=1` —— 把每个系统调用追踪到 stderr。 - `RVRUN_STATS=1` —— 退出时打印退役指令数与执行速度。 - `RVRUN_JIT=0` —— 使用带缓存的解释器运行,不启用 JIT。 - `RVRUN_PROF=FILE` —— 采样生成的代码,并把最热基本块的报告写入 FILE;用 `tools/jitprof.py FILE` 渲染。 - `RVRUN_CACHE=0` —— 关闭持久化代码缓存。默认按可执行文件保存在 `~/Library/Caches/champollion`(Linux 上是 `$XDG_CACHE_HOME/champollion` 或 `~/.cache/champollion`),或 `$RVRUN_CACHE_DIR` 指向的位置。