assert
产 品 支 持 情 况
功 能 说 明
头 文 件 路 径 为:"utils/debug/asc_assert.h"。
该 接 口 实 现CPU/NPU域assert断 言 功 能。算 子 执 行 中,如 果assert内 部 条 件 判 断 不 为 真,则 输 出assert条 件 并 将 输 入 的 信 息 格 式 化 打 印 在 屏 幕 上。
在 算 子Kernel侧 实 现 代 码 中 需 要 增 加 断 言 的 地 方 使 用assert检 查 代 码,并 格 式 化 输 出 一 些 调 测 信 息。示 例 如 下:
C++
int assertFlag = 10;
assert(assertFlag == 10);
注 意
该 接 口 主 要 用 于 调 试 分 析,开 启 后 会 对 算 子 性 能 产 生 一 定 影 响,通 常 在 调 试 阶 段 使 用,生 产 环 境 建 议 关 闭。
默 认 情 况 下,调 用 该 接 口 就 会 打 印 相 关 内 容,开 发 者 可 以 参 考关 闭ASCENDC_DUMP说 明,按 需 关 闭 该 接 口 功 能。
函 数 原 型
C++
define assert(...)
参 数 说 明
表 1 参 数 说 明
| 参 数 名 称 | 输 入/输 出 | 描 述 |
|---|---|---|
| ... | 输 入 | assert断 言 是 否 终 止 程 序 的 条 件。为true则 程 序 继 续 执 行,为false则 终 止 程 序。 |
数 据 类 型
无
返 回 值 说 明
无
返 回 值 说 明
无
约 束 说 明
- 单 次 调 用 本 接 口 打 印 的 数 据 总 量 不 可 超 过30KB。使 用 时 应 注 意,如 果 超 出 这 个 限 制,则 数 据 不 会 被 打 印。
- 在cmake工 程 的release模 式 下,默 认 使 能NDEBUG宏 定 义,assert打 印 信 息 失 效。
调 用 示 例
C++
int assertFlag = 10;
// 断 言 条 件
assert(assertFlag != 10);
程 序 运 行 时 会 触 发assert,打 印 效 果 如 下:
[ASSERT] /home/.../add_custom.cpp:44: Assertion `assertFlag != 10'