---
title: acldumpRegCallback
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_0316.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0316.html
indexId: eaea00138980a2a788ddb8c87ee0f779aca5a3366c0f74126e926c4388e12f0b68
---
# acldumpRegCallback

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

Dump数据回调函数注册接口。

aclmdlInitDump接口、acldumpRegCallback接口（通过该接口注册的回调函数需由用户自行实现，回调函数实现逻辑中包括获取Dump数据及数据长度）、acldumpUnregCallback接口、aclmdlFinalizeDump接口配合使用，用于通过回调函数获取Dump数据。场景举例如下：- 执行一个模型，通过回调获取Dump数据：
支持以下两种方式：

  - 在aclInit接口处不启用模型Dump配置、单算子Dump配置
    aclInit接口-->aclmdlInitDump接口-->acldumpRegCallback接口-->模型加载-->模型执行-->acldumpUnregCallback接口-->aclmdlFinalizeDump接口-->模型卸载-->aclFinalize接口

  - 在aclInit接口处启用模型Dump配置、单算子Dump配置，在aclInit接口处启用Dump配置时需配置落盘路径，但如果调用了    acldumpRegCallback
接口，则落盘不生效，以回调函数获取的Dump数据为准
    aclInit接口-->acldumpRegCallback接口-->模型加载-->模型执行-->acldumpUnregCallback接口-->模型卸载-->aclFinalize接口

- 执行两个不同的模型，通过回调获取Dump数据，该场景下，只要不调用  acldumpUnregCallback
接口取消注册回调函数，则可通过回调函数获取两个模型的Dump数据：
  aclInit接口-->aclmdlInitDump接口-->acldumpRegCallback接口-->模型1加载-->模型1执行-->-->模型2加载-->模型2执行-->acldumpUnregCallback接口-->aclmdlFinalizeDump接口-->模型卸载-->aclFinalize接口


#### 函数原型

```
aclError acldumpRegCallback(int32_t (* const messageCallback)(const acldumpChunk *, int32_t len), int32_t flag)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| messageCallback | 输入 | 回调函数指针，用于接收回调数据的回调。 acldumpChunk结构体的定义如下，在实现messageCallback回调函数时可以获取acldumpChunk结构体中的dataBuf、bufLen等参数值，用于获取Dump数据及其数据长度： typedef struct acldumpChunk { char fileName[ACL\_DUMP\_MAX\_FILE\_PATH\_LENGTH]; // 待落盘的Dump数据文件名，ACL\_DUMP\_MAX\_FILE\_PATH\_LENGTH表示文件名最大长度，当前为4096 uint32\_t bufLen; // dataBuf数据长度，单位Byte uint32\_t isLastChunk; // 标识Dump数据是否为最后一个分片，0表示不是最后一个分片，1表示最后一个分片 int64\_t offset; // Dump数据文件内容的偏移，其中\-1表示文件追加内容 int32\_t flag; // 预留Dump数据标识，当前数据无标识 uint8\_t dataBuf[0]; // Dump数据的内存地址 } acldumpChunk; len：表示acldumpChunk结构体的长度，单位Byte。 |
| flag | 输入 | 在调用回调接口后是否还落盘dump数据： 0：不落盘，当前仅支持0 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。
