| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
bugfix:统一db问题修正 Co-authored-by: Seanesmhxocism<wangzixuan54@huawei.com> # message auto-generated for no-merge-commit merge: !487 merge linux into master bugfix:统一db问题修正 Created-by: Seanesmhxocism Commit-by: Seanesmhxocism Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** - 1、DPUTask表中包含globalTid,但是未遵循统一的globalTid的呈现逻辑。 - 2、静态图场景,无法区分device数据对应关系,globalTaskId重复 - **修改内容:** - 1、dpuTask表修改对应的globalTid计算规则为 高位pid 低位tid - 2、python侧 7 8 11 表pmuCalculator新增endTime - 3、c++侧pmuCalculator新增endtime字段 - 4、unifiedPmuProcessor增加读取endTime字段。 - 5、PmuTaskInfo表新增timestampNs字段 - 6、CommunicationTaskInfo表同样新增timestampNs字段 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!487 | 2 小时前 | |
支持C化各模块前向无环图注册机制 Co-authored-by: WangangYu<2392205247@qq.com> # message auto-generated for no-merge-commit merge: !395 merge processor into master 支持C化各模块前向无环图注册机制 Created-by: MrYudd Commit-by: WangangYu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 在万卡TB级参数量、300B MoE的情况下,单卡level0数据能达到10GB,全量数据解析耗时久效率低下,而往往只需要部分交付件,op summary、step trace 难以快速支持用户分析 - **修改内容:** 本次将原先分散的 Processor、Summary、DB、Timeline 装配流程统一为注册式 DAG。 ExportManager 按导出配置选择根节点,TopoGraphBuilder 递归展开依赖、校验缺失/环、去重并生成 ProcessCollection;ProcessControl 按拓扑层级并发执行,并依据后续节点的 paramTypes 释放无用数据。DB/Timeline 增加前后置控制节点,UT 覆盖建图、依赖、执行及数据释放场景。 约定:A → B 表示 B 依赖 A,A 先执行。数据类型注册不属于控制依赖,未在图中展开。 mermaid flowchart LR R["静态注册<br/>Processor / Summary / DB / Timeline"] --> G["TopoNodeRegistry"] C["report 配置"] --> S["导出根节点选择"] G --> B["TopoGraphBuilder<br/>展开、去重、环检测"] S --> B B --> P["ProcessCollection"] P --> E["ProcessControl<br/>按 DAG 层级并发执行"] E --> D["DataInventory<br/>按后续 paramTypes 回收数据"] Processor DAG(其余 Processor 均为无前置依赖叶子节点): mermaid flowchart LR HASH["HASH"] --> COMM["COMMUNICATION"] HASH --> CTI["COMPUTE_TASK_INFO"] HASH --> KCOMM["KFC_COMM"] HASH --> NPUOP["NPU_OP_MEM"] TASK["TASK"] --> OVERLAP["OVERLAP_ANALYSIS"] CTI --> OVERLAP COMM --> OVERLAP KCOMM --> OVERLAP MC2["MC2_COMM_INFO"] --> OVERLAP Summary DAG: mermaid flowchart LR CTI["COMPUTE_TASK_INFO"] --> OPS["OP_SUMMARY"] TASK["TASK"] --> OPS COMM["COMMUNICATION"] --> OPS PMU["PMU"] --> OPS FUSION["FUSION_OP"] --> FS["FUSION_OP Summary"] MODEL["MODEL_NAME"] --> FS HASH["HASH"] --> FS CTI --> TTS["TASK_TIME_SUMMARY"] HOST["HOST_TASK"] --> TTS TASK --> TTS SIMPLE["COMM_STATISTIC / OP_STATISTIC / NPU_MEM / NPU_MODULE_MEM / API / STEP_TRACE / PAGE_FAULT"] SIMPLE --> SAME["对应同名 Summary 节点"] DB DAG: mermaid flowchart LR SAME["同名 Processor"] --> DBS["对应 DB Saver"] COMM["COMMUNICATION"] --> DCOMM["DB:COMMUNICATION"] KCOMM["KFC_COMM"] --> DCOMM FREQ["AICORE_FREQ"] --> DFREQ["DB:AICORE_FREQ"] LOW["LOW_POWER"] --> DFREQ TASK["TASK"] --> DTASK["DB:TASK"] TX["DEVICE_TX"] --> DTASK CTI["COMPUTE_TASK_INFO"] --> DCTI["DB:COMPUTE_TASK_INFO"] MC2["MC2_COMM_INFO"] --> DCTI UPMU["UNIFIED_PMU"] --> DPMU["TASK_PMU / SAMPLE_PMU_*"] DBS --> IDS["DB:STRING_IDS"] DCOMM --> IDS DFREQ --> IDS DTASK --> IDS DCTI --> IDS DPMU --> IDS ENUM、HOST_INFO、META_DATA、NPU_INFO、SESSION_TIME_INFO 无 Processor 依赖;其余 DB Saver 均为同名 Processor 一对一依赖。 Timeline DAG: mermaid flowchart LR PRE["TIMELINE:PRE_DUMP"] --> TL["所有选中的 Timeline 节点"] TASK["TASK"] --> TLTASK["Task Scheduler"] KFC_TASK["KFC_TASK"] --> TLTASK CTI["COMPUTE_TASK_INFO"] --> TLTASK API["API"] --> TLTASK MEMCPY["MEMCPY_INFO"] --> TLTASK API --> TLAPI["API Timeline"] TASK --> TLAPI CHIP["CHIP_TRAINS"] --> TRANS["STARS_CHIP_TRANS"] PCIE["PCIE"] --> TRANS COMM["COMMUNICATION"] --> HCCL["HCCL Timeline"] KFC_TASK --> HCCL KCOMM["KFC_COMM"] --> HCCL FREQ["AICORE_FREQ"] --> LOW["LOW_POWER Timeline"] LP["LOW_POWER"] --> LOW TX["DEVICE_TX"] --> TXTL["DEVICE_TX Timeline"] MSTX["MSTX"] --> TXTL BLOCK["BLOCK_DETAIL"] --> BTL["BLOCK_DETAIL Timeline"] CTI --> BTL TASK --> BTL TL --> POST["TIMELINE:POST_DUMP"] 除上图多依赖节点外,ACC_PMU、DDR、HBM、HCCS、OSRT_API、各类 Usage、NPU_MEM、PCIE、SOC、LLC、NIC、ROCE、QOS、BIU、UB、DPU、FUSION_TASK、STEP_TRACE、CCU 等均为 PRE_DUMP + 对应单个 Processor → Timeline 节点。 ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!395 | 15 天前 | |
fix: C流程从内存聚合op_statistic,不再依赖op_counter.db Co-authored-by: chenqm<chenzhipeng51@huawei.com> # message auto-generated for no-merge-commit merge: !470 merge fix/op-statistic-from-memory into master fix: C流程从内存聚合op_statistic,不再依赖op_counter.db Created-by: chenqm Commit-by: chenqm Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请注意。** ---- ## 1. 修改描述 - **修改原因:** 全量 C 解析链路不再依赖 op_counter.db,原 OpStatisticProcessor 从 op_report 表读取数据,导致纯 C 流程无法生成 op_statistic.csv。 - **修改内容:** - OpStatisticProcessor 改为从内存中的任务关联结果聚合生成 op_statistic.csv,不再读取 op_counter.db。 - 新增 TaskAssociationProcessor,使用完整 TaskId 关联 TaskInfoData 和 AscendTaskData。 - 新增 AssociatedTaskCollection 作为共享关联结果;记录保存源数据指针,并持有源向量以保证生命周期。 - OpSummaryAssembler 与 OpStatisticProcessor 统一消费共享关联结果,数据处理拓扑同步调整。 - 统计结果按 device、opType、taskType 聚合,保留既有 CSV 字段和任务过滤口径。 ---- ## 2. 功能验证 - [x] data_process_utest 构建成功。 - [x] TaskAssociationProcessorUTest.*:OpStatisticProcessorUTest.*:12/12 通过。 - [x] export_assemble_utest 构建成功。 - [x] OpSummaryAssemblerUTest.*:4/4 通过。 - [ ] **本地自验用例截图** 不涉及。 - [ ] **冒烟是否通过** 未执行。 ---- ## 3. 分支合并要求 - [ ] **代码合并** 合入前按流程确认。 ---- ## 4. 代码检视 - [ ] **是否经过代码检视** 待按流程确认。 - [x] **是否具备 UT 测试用例看护** ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更** 不涉及对外接口。 - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** 不涉及文件操作。 - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后临时文件没有残留** 不涉及临时文件。 - [x] **数组访问需要校验越界场景,对除法需要做除零校验** ratio 已进行除零保护。 - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** 不涉及递归和正则。 - [x] **需要充分进行接口输入和返回值异常情况的校验** 源数据缺失和数据注入失败均有处理。 ### C++ - [x] **指针使用前需要判空** 关联集合获取后进行判空。 - [x] **数值计算校验溢出和反转** ratio 有除零保护,异常时间范围会跳过。 - [x] **不可存在内存泄漏** 使用 RAII 容器和智能指针。 - [ ] **类型转换不能出现数据截断** 不涉及新增可能截断的类型转换。 - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** 不涉及缓冲区拷贝。 - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** 不涉及内存块拷贝。 - [ ] **内存释放后指针赋值为 nullptr** 不涉及手工释放。 ---- ## 6. 变更知会 - [ ] **资料修改** 不涉及。 - [ ] **变更通知(消息知会 + 邮件知会)** 不涉及。 See merge request: Ascend/msprof!470 | 4 天前 | |
[msprof]补充Capture Stream与MC2通信信息Parser C化模块 Co-authored-by: wailii<1915238986@qq.com> # message auto-generated for no-merge-commit merge: !398 merge codex/host-capture-stream-mc2-parser into master [msprof]补充Capture Stream与MC2通信信息Parser C化模块 Created-by: gcw_648Mce95 Commit-by: wailii Merged-by: ascend-robot Description: # PR 合入模板 **关联 Issue:#117** ---- ## 1. 修改描述 - **修改原因:** 将 Capture Stream 与 MC2 通信信息解析迁移至 C++,保持现有 Python 回退及下游数据契约。 - **修改内容:** 1. 新增 Capture Stream V1/V2 与 MC2 Comm Info C++ Parser。 2. 新增排序、去重、batch、Capture→MC2 补充及 SQLite 持久化。 3. 接入 KernelParserWorker,保留原芯片/场景门控并避免 Python/C++ 双写。 4. 扩展 stream id 相关内部字段,避免大 stream id 截断和低位碰撞。 5. 补充 Parser、Dumper、Worker、路由及下游关联 UT。 ---- ## 2. 功能验证 - [x] **功能自验** - 功能提交基线完整 analysis C++ UT:1,102/1,102,0 failure/error/skipped/disabled。 - 同步最新 master 后:analysis 生产构建通过;Python 路由测试 6/6;pre-commit、Bandit、Gitleaks 通过。 - 真实 Capture V1、四组真实 MC2 与 Python 结果逐字段一致;Capture V2 使用合成结构覆盖。 - [ ] **本地自验用例截图**(未上传本地截图) - [ ] **冒烟是否通过**(本地无正式 CANN/NPU 环境,待维护者环境验证) ---- ## 3. 分支合并要求 - [ ] **代码合并**(不涉及 poc/pre-research 分支操作) ---- ## 3. 代码检视 - [ ] **是否经过代码检视**(待维护者检视) - [x] **是否具备 UT 测试用例看护** - **检视意见数:10 条本地检视意见已闭环** > 本 Issue 同时包含 Capture Stream 与 MC2 两个相互依赖的 Parser;本 PR 按 Issue 范围合并提交,新增行以业务实现和 UT 为主。超过 1000 行部分请按仓库要求备案并安排会议检视。 ---- ## 4. 安全自检 ### Python、C++ - [x] **对外接口新增/删除/变更后,资料要同步新增/删除/变更**(不涉及公开接口变更) - [x] **不允许私有的文件操作,需要使用公共模块的安全函数** - [x] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [x] **数组访问需要校验越界场景,对除法需要做除零校验** - [x] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验**(不涉及递归和新增正则) - [x] **需要充分进行接口输入和返回值异常情况的校验** - [x] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [x] **指针使用前需要判空** - [x] **数值计算校验溢出和反转** - [x] **不可存在内存泄漏**(Parser 缓冲区使用 RAII) - [x] **类型转换不能出现数据截断** - [x] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1**(不涉及裸字符串拷贝) - [x] **拷贝内存时,目的缓冲区不小于源缓冲区** - [x] **内存释放后指针赋值为 nullptr**(RAII 管理,不涉及手工释放) ---- ## 5. 变更知会 - [ ] **资料修改**(不涉及) - [ ] **变更通知(消息知会 + 邮件知会)**(待维护者流程) See merge request: Ascend/msprof!398 | 4 天前 | |
bugfix:统一db问题修正 Co-authored-by: Seanesmhxocism<wangzixuan54@huawei.com> # message auto-generated for no-merge-commit merge: !487 merge linux into master bugfix:统一db问题修正 Created-by: Seanesmhxocism Commit-by: Seanesmhxocism Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** - 1、DPUTask表中包含globalTid,但是未遵循统一的globalTid的呈现逻辑。 - 2、静态图场景,无法区分device数据对应关系,globalTaskId重复 - **修改内容:** - 1、dpuTask表修改对应的globalTid计算规则为 高位pid 低位tid - 2、python侧 7 8 11 表pmuCalculator新增endTime - 3、c++侧pmuCalculator新增endtime字段 - 4、unifiedPmuProcessor增加读取endTime字段。 - 5、PmuTaskInfo表新增timestampNs字段 - 6、CommunicationTaskInfo表同样新增timestampNs字段 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!487 | 2 小时前 | |
c化代码 常量类抽取,规范各模块常量使用 Co-authored-by: Seanesmhxocism<617225691@qq.com> # message auto-generated for no-merge-commit merge: !317 merge linux into master c化代码 常量类抽取,规范各模块常量使用 Created-by: Seanesmhxocism Commit-by: Seanesmhxocism Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 当前c化代码中有大量的常量使用,但都局限于某个文件的匿名空间。导致各文件中有相同常量,各自重复定义。 - **修改内容:** **不涉及业务逻辑修改!!不涉及业务逻辑修改!!全部内容均为下述的代码迁移和调整。** 1、抽取各cpp,h文件中的常量内容,将存在重复部分统一抽取到analysis/csrc/infrastructure/utils/common_constant.h中 2、针对当前的定义情况,将跨作用域的常量统一放在Analysis::Common下,其他的常量内容暂时在common_constant中设置相同作用域以保证使用的同步更替。后续如有必要再做各作用域拆分合并至Common中。 3、抽取原本分散的constant类,包括default_value_constant.h,time_unit_constant.h,合并到common_constant中。 4、unified_db_constant.h合并在db_constant,保留原本json_constant和summary_constant。 5、json_constant和summary_constant中涉及的assembler状态位抽取到error_code中。 6、将step_trace_constant.h内容合并到state.h头文件中。 7、将msprof_db相关文件,从原本viewer目录下,迁移到application/database目录下,保持DDD建模的整体性。修复过去的设计问题。 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!317 | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 小时前 | ||
| 15 天前 | ||
| 4 天前 | ||
| 4 天前 | ||
| 2 小时前 | ||
| 2 个月前 |