56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
---
|
||
tags: []
|
||
aliases:
|
||
- 1.6.1 异构调试与内存安全 (Heterogeneous Debugging & Memory Safety)
|
||
date created: 星期三, 十一月 19日 2025, 8:31:15 晚上
|
||
date modified: 星期三, 十一月 19日 2025, 8:31:38 晚上
|
||
---
|
||
|
||
# 1.6.1 异构调试与内存安全 (Heterogeneous Debugging & Memory Safety)
|
||
|
||
**审计综述**:
|
||
系统在调试层面具备极高的能力,Host 端 GDB 基础稳固,Device 端拥有专用调试器。然而,ASAN 库的安装路径不标准,需要手动配置系统链接器以启用。
|
||
|
||
**1. GDB 调试前端 (GDB Debugging Frontend)**
|
||
|
||
- **关键性**:**P0**
|
||
- **信息解析**:
|
||
- **版本与支持**:GDB 版本为 **9.2** (Kylin 定制版),且 **Python 接口已激活**。
|
||
- **价值**:Python 接口是 VSCode / CLion 等 IDE 实现高级断点、复杂结构体可视化以及 GDB 脚本扩展的必要条件。
|
||
- **探测依据**:
|
||
|
||
```bash
|
||
gdb --version
|
||
GNU gdb (GDB) KylinOS 9.2-3…
|
||
gdb -q -ex 'pi print(…)' -ex quit
|
||
Python support is active
|
||
```
|
||
|
||
**2. 异构调试工具链 (Heterogeneous Debugger Tools)**
|
||
|
||
- **关键性**:**P0**
|
||
- **信息解析**:
|
||
- **专用调试器**:**ixgdb** (Iluvatar GDB) 存在。这是用于 GPU Kernel 级断点调试的专用工具,等同于 NVIDIA 的 `cuda-gdb`。
|
||
- **远程支持**:`gdbserver` 存在。可用于在远程开发机器(如 Windows/MacOS)上通过 VSCode/SSH 附件到 Kylin 服务器上的进程进行调试。
|
||
- **探测依据**:
|
||
|
||
```bash
|
||
ls -l /usr/local/corex/bin/*gdb*
|
||
/usr/local/corex/bin/ixgdb
|
||
/usr/local/corex/bin/gdbserver
|
||
```
|
||
|
||
**3. 内存安全检测工具 (Memory Safety Checkers)**
|
||
|
||
- **关键性**:**P1**
|
||
- **信息解析**:
|
||
- **Valgrind**:**v3.13.0** 已安装,可用于 Host 端代码的内存泄漏和越界访问检测。
|
||
- **ASAN (Address Sanitizer)**:库文件 `libasan.so` **已安装**在 GCC 7.3 的私有路径 (`/usr/lib/gcc/…`)。
|
||
- **风险与修正**:ASAN 库默认对系统链接器不可见。已通过创建 `/etc/ld.so.conf.d/gcc7-asan.conf` 文件并执行 `ldconfig` 解决了此路径问题。
|
||
- **探测依据**:
|
||
|
||
```bash
|
||
which valgrind && valgrind --version
|
||
/usr/bin/valgrind valgrind-3.13.0
|
||
```
|