静态分析再进化,Clang 18带来哪些你不可错过的漏洞发现能力?

第一章:Clang 18静态分析技术演进概述

Clang 18作为LLVM项目中C/C++/Objective-C编译器前端的重要版本,其静态分析能力在准确性、可扩展性和诊断覆盖面上实现了显著提升。该版本进一步优化了底层分析引擎,增强了对现代C++标准特性的支持,并引入了更智能的路径敏感分析机制。

核心改进方向

  • 增强对C++20和部分C++23特性的语义理解,如概念(concepts)和模块(modules)的静态检查支持
  • 改进内存泄漏检测算法,降低误报率并提升跨函数边界分析精度
  • 集成更高效的调用图构建策略,支持大规模项目中的上下文敏感分析

静态分析执行示例

在Clang 18中,可通过如下命令行启用增强版静态分析:
# 执行静态分析并输出详细报告
clang++ -Xclang -analyzer-output=html \
        -Xclang -analyzer-checker=core \
        -Xclang -analyzer-checker=unix \
        -Xclang -analyzer-checker=deadcode.DeadStores \
        -o analysis-report.html example.cpp
上述指令将生成HTML格式的分析报告,涵盖空指针解引用、资源泄漏及无用存储等常见缺陷。

关键检查器对比

检查器类别Clang 17 支持情况Clang 18 新增能力
core.uninitialized基础变量未初始化检测支持复杂聚合类型成员追踪
osx.coreFoundation仅限Objective-C对象扩展至Swift交互场景下的内存管理检查
security.insecureAPI标记strcpy、sprintf等函数新增对C++标准库误用的警告(如未验证输入的std::stoi)
graph TD A[源代码解析] --> B[构建AST] B --> C[控制流图生成] C --> D[路径敏感数据流分析] D --> E[缺陷模式匹配] E --> F[生成诊断报告]

第二章:Clang Static Analyzer核心增强

2.1 路径敏感分析的精度提升与理论基础

路径敏感分析通过区分不同执行路径上的程序行为,显著提升了静态分析的精度。传统上下文不敏感分析可能将多条分支路径合并处理,导致误报率升高。
路径条件建模
在路径敏感分析中,每条执行路径关联一个路径条件(Path Condition),用于描述该路径成立所需的约束。例如:

if (x > 0) {
    y = 1 / x; // 路径条件:x > 0
} else {
    y = 0;
}
上述代码中,除法操作仅在 x > 0 成立时执行,路径条件有效避免了对 x == 0 的误判。
符号执行与约束求解
结合符号执行技术,路径敏感分析可系统性探索路径空间。使用SMT求解器验证路径可达性,提升分析可信度。
  • 路径爆炸问题可通过启发式剪枝缓解
  • 动态符号执行(Concolic执行)混合具体与符号值提高覆盖率

2.2 增强型符号执行在漏洞检测中的实践应用

增强型符号执行通过引入路径约束求解与动态内存建模,显著提升了对复杂漏洞的发现能力。传统符号执行受限于路径爆炸与指针解析难题,而增强技术结合静态分析与运行时信息反馈,有效缓解了这些问题。
路径约束优化策略
利用约束求解器(如Z3)对分支条件进行符号化建模,可自动推导触发漏洞的输入向量。例如,在整数溢出检测中:

int calc_offset(int len) {
    if (len > 0 && len < 1024) {
        int offset = 1024 - len; // 可能产生负值
        char *buf = malloc(offset);
        memset(buf, 0, offset);  // 漏洞点
        return offset;
    }
    return -1;
}
上述代码中,当 len > 1024 时逻辑不会进入分支,但符号执行通过逆向求解 offset ≤ 0,反推出 len ≥ 1024 的异常输入,从而捕获潜在的负长度分配漏洞。
检测效果对比
方法路径覆盖率误报率支持漏洞类型
传统符号执行68%35%缓冲区溢出
增强型符号执行89%12%整数溢出、UAF、越界访问

2.3 内存状态建模改进与资源泄漏识别

传统的内存建模方法难以精准捕捉动态分配资源的生命周期,导致资源泄漏检测滞后。为此,引入基于引用计数与可达性分析的混合建模机制,提升内存状态追踪精度。
增强型内存状态图
通过扩展对象元数据,记录分配栈回溯与引用关系链,实现细粒度监控:

struct MemBlock {
    void* ptr;
    size_t size;
    int ref_count;        // 引用计数
    CallSite alloc_site;  // 分配位置
    bool is_freed;
};
上述结构在运行时注入内存操作钩子,实时更新状态字段,为泄漏分析提供上下文支持。
资源泄漏识别流程
初始化监控 → 分配/释放拦截 → 引用图更新 → 周期性扫描不可达块 → 报告潜在泄漏
结合以下判定条件可有效减少误报:
  • 对象已无任何活跃引用(ref_count == 0)
  • 未被GC根可达
  • 标记后长时间未释放

2.4 新增检查器架构解析与扩展机制实战

新增检查器采用插件化设计,核心由注册中心、执行引擎和结果处理器三部分构成。通过接口契约 `Checker` 实现统一规范:
type Checker interface {
    Name() string                    // 检查器名称
    Check(ctx context.Context) Result // 执行检测逻辑
    Config() map[string]interface{}  // 返回配置元数据
}
该接口定义了检查器的基本行为,便于动态加载与调度。系统启动时通过反射扫描注册所有实现类。
扩展机制实现路径
开发者可通过以下步骤注册自定义检查器:
  • 实现 Checker 接口并导出类型
  • 在 init 函数中调用 RegisterChecker()
  • 编译为 shared library 或嵌入主程序
运行时结构示意
[Loader] → [Registry] → [Execution Pipeline] → [Reporter]

2.5 并发缺陷检测能力的理论突破与案例验证

传统并发缺陷检测常受限于状态空间爆炸与误报率高的问题。近年来,基于轻量级动态分析与形式化建模融合的技术路径实现了关键突破。
数据同步机制
通过引入向量时钟与Happens-Before模型的增强变体,系统可高效追踪跨线程内存访问冲突。例如,在Go语言中利用竞争检测器可捕获潜在race condition:

var x int
go func() { x = 1 }()      // 写操作
go func() { print(x) }()   // 读操作
上述代码在启用-race标志编译时将触发警告,表明存在未受保护的共享变量访问。
检测效果对比
方法召回率误报率
静态分析78%32%
动态追踪91%15%

第三章:面向C语言安全的新检测能力

3.1 空指针解引用与越界访问的深度捕获

在系统级编程中,空指针解引用和内存越界访问是引发崩溃的主要根源。通过静态分析与运行时检测结合,可实现深度捕获。
常见触发场景
  • 未初始化指针被直接解引用
  • 数组访问超出预分配边界
  • 释放后内存再次使用(Use-After-Free)
代码示例与检测

int *ptr = NULL;
if (condition) {
    ptr = malloc(sizeof(int));
}
*ptr = 42; // 潜在空指针解引用
上述代码中,若 condition 为假,ptr 仍为 NULL,解引用将导致段错误。应增加判空保护:if (ptr != NULL) *ptr = 42;。
工具辅助检测表
工具检测能力适用阶段
AddressSanitizer越界、Use-After-Free运行时
Clang Static Analyzer空指针路径分析编译期

3.2 不安全函数调用模式的识别与修复实践

在现代软件开发中,不安全的函数调用是导致内存泄漏、缓冲区溢出和权限提升的主要根源。识别这些模式需结合静态分析与运行时监控。
常见不安全调用示例

// 危险的 strcpy 调用
void unsafe_copy(char *input) {
    char buffer[64];
    strcpy(buffer, input);  // 缺乏长度检查
}
上述代码未验证输入长度,攻击者可通过超长字符串触发栈溢出。应替换为 strncpy 或 snprintf。
安全替代方案对比
不安全函数安全替代说明
strcpystrncpy限制拷贝字节数
getsfgets指定最大读取长度
sprintfsnprintf防止缓冲区溢出
通过强制使用边界检查函数,并结合编译器警告(如 -Wall -Wformat-security),可显著降低风险。

3.3 类型混淆与内存布局违规的检测策略

静态分析识别类型不匹配
通过编译期工具扫描源码中的类型声明与实际使用场景,可有效发现潜在的类型混淆问题。例如,在C语言中指针类型的强制转换常引发内存布局误解。

struct Packet {
    uint32_t id;
    uint8_t  flag;
};
void parse(void *data) {
    struct Packet *p = (struct Packet *)data; // 高风险类型转换
}
上述代码将任意内存块强制转为 struct Packet,若传入数据长度不足或对齐不符,将导致越界访问。静态分析工具可通过追踪类型流和内存尺寸推断此类风险。
运行时内存布局校验
引入运行时检查机制,验证对象大小、字段偏移与预期布局的一致性。可结合断言或安全库实现自动检测。
检测项预期值实际值
sizeof(flag)11
offsetof(flag)44

第四章:集成与优化最佳实践

4.1 在CI/CD中集成Clang 18静态分析流水线

将Clang 18静态分析工具集成到CI/CD流水线,可有效提升C/C++项目的代码质量。通过在构建阶段自动执行静态检查,能够在早期发现内存泄漏、空指针解引用等潜在缺陷。
配置Clang-Scan-Build分析步骤
在流水线中使用`scan-build-18`包装编译过程:
scan-build-18 --use-analyzer=/usr/bin/clang-18 \
  -o ./reports/clang-scan \
  make clean all
该命令通过`--use-analyzer`指定Clang 18作为后端分析器,`-o`参数定义报告输出目录。`make clean all`被拦截并注入静态分析逻辑,生成HTML格式的缺陷报告。
分析结果集成策略
  • 将扫描报告归档至CI产物,便于追溯
  • 结合正则匹配提取严重警告数,设置门禁阈值
  • 通过API推送关键缺陷至Jira或企业微信告警群

4.2 分析结果精准度调优与误报抑制技巧

在静态代码分析中,提升检测结果的精准度是保障开发效率的关键。高误报率会削弱开发者对工具的信任,因此需系统性调优。
调整规则敏感度阈值
通过降低过于激进的规则阈值,可有效减少误报。例如,在SonarQube中配置复杂度警告的触发条件:

// 规则配置示例:圈复杂度仅在超过15时告警
<property key="cycloThreshold" value="15"/>
该设置避免在中等复杂度方法上产生冗余警告,聚焦真正高风险代码。
结合上下文过滤误报
利用注解或上下文信息排除已知安全模式:
  • @SuppressWarnings 注解标记预期行为
  • 白名单机制忽略第三方库路径
  • 调用链分析确认非入口点不触发告警
最终实现精准识别真实缺陷,提升分析器实用性。

4.3 与编译警告协同工作的多层级防御体系

在现代软件构建流程中,编译警告不应被视作可忽略的提示,而应作为代码质量的早期警报。建立多层级防御体系,能有效拦截潜在缺陷。
静态分析层集成
通过在CI/CD流水线中启用严格编译选项,如GCC的-Wall -Wextra -Werror,可将警告升级为错误,强制开发者修复:

// 启用严格检查避免未使用变量
int compute_sum(int a, int b) {
    int result = a + b;
    return result;
}
该配置确保所有变量必须被合理使用,防止逻辑遗漏。
工具链协同策略
结合Clang Static Analyzer与编译器警告,形成互补检测机制。以下为常见警告类型及其应对优先级:
警告类型风险等级处理策略
未初始化变量高立即修复
隐式类型转换中显式转型标注
废弃API调用低计划替换

4.4 大型C项目中的性能优化与增量分析配置

在大型C语言项目中,编译性能和静态分析效率直接影响开发迭代速度。启用增量构建是提升效率的关键手段。
启用GCC增量编译

# 编译命令示例
gcc -MMD -MP -c src/module.c -o obj/module.o
该命令生成依赖文件(.d),配合Makefile实现仅重新编译变更的源文件,显著减少全量构建时间。
静态分析工具配置优化
使用Clang Static Analyzer时,通过以下选项控制分析深度:
  • -analyzer-opt-analyze-nested-blocks:启用嵌套块分析
  • -analyzer-max-loop 8:限制循环展开次数以平衡精度与性能
构建性能对比
构建类型耗时(秒)CPU占用率
全量构建21095%
增量构建1840%

第五章:未来静态分析的发展方向与生态展望

智能化缺陷预测系统的构建
现代静态分析正逐步融合机器学习技术,实现对代码缺陷的智能预测。例如,在 Go 项目中集成基于历史提交数据训练的模型,可识别高风险代码模式:

// 示例:标记潜在 nil 解引用
func FindUser(id int) *User {
    user, err := db.Query("SELECT ...") // 可能返回 nil
    if err != nil {
        log.Error(err)
        return nil
    }
    return user // 静态分析应提示调用方检查 nil
}
跨语言分析平台的兴起
随着微服务架构普及,多语言混合项目成为常态。新兴工具链如 Semgrep 和 SonarQube 支持数十种语言统一扫描,其规则引擎允许自定义检测逻辑:
  • Python 中未使用的变量检测
  • JavaScript 的 XSS 漏洞模式匹配
  • Java 的资源泄露路径追踪
CI/CD 流程中的实时反馈机制
静态分析已深度嵌入持续集成系统。以下为 GitHub Actions 中的典型配置流程:
  1. 代码推送触发 workflow
  2. 自动运行 golangci-lint 或 ESLint
  3. 生成 SARIF 报告并上传至 GitHub Code Scanning
  4. PR 界面直接显示问题位置与修复建议
工具支持语言CI 集成度
CodeQLC++, Java, Go, Python高(GitHub 原生)
golangci-lintGo中(需手动配置)
[代码提交] → [触发 CI] → [静态分析] → [报告生成] → [开发者修复]
clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04 clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,官网下载实在是太慢了!!! 立即下载

相关推荐

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

2024-05-23 vscode + clang + clangd 解锁 modules

要解决问题: 昨天解锁VS使用modules, 但是不完美, 没有代码提示和补全了, 今天用解锁modules, 同时还有代码补全及提示.想到的思路: 误打误撞, 发现clang18也支持modules, 配合vscode 及 clangd还可以有代码提示和补全.其它的补充: 原来我以为没有头文件就没有代码补全, 看来我想多了, 这不是问题, 可以解决.离c++20标准已经过去4年了, 终于实现了modules的功能, 且解决了代码提示和补全的后顾之忧, 可以愉快的编程了.

老林的博客 3389

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

解决Clang 18+不能链接GCC14编译的库的问题

解决Clang18+不能链接GCC编译的库的问题。

witton的专栏 1644

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

clang-format

.clang-format 代码文件内容格式化

belien 1368

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Clang LLVM 18.1.8 安装教程以及文件免费下载

我用夸克网盘分享了「LLVM-18.1.8-win64.exe」,点击链接即可保存。链接:https://pan.quark.cn/s/858a2fe0f755。文件下到电脑上,然后双击安装,点击下一步。同意协议,以及勾选自动添加环境变量。都是免费分享,有需要的可以随意拿。

2401_86141214的博客 1678

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Mythos模型:可调度确定性漏洞利用生成的技术革命

漏洞利用生成正从人工试错迈向AI驱动的工业化流程。传统安全工具依赖规则匹配与符号执行辅助,而新一代AI模型通过融合静态分析、路径约束求解与跨架构Exploit构造能力,实现单次推理闭环输出可验证POC。其核心突破在于将‘失败预判’作为监督信号、构建多层推理引擎,并引入运行时环境感知机制,显著提升漏洞发现精度与攻击链有效性。该技术已深度应用于红队自动化、DevSecOps流水线及供应链风险评估等场景,推动安全能力从‘响应式’转向‘预测式’。Mythos作为典型代表,标志着AI原生安全工具进入‘自主执行单元’新

diaolouan9546的博客 428

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Mythos:首个可规模化漏洞挖掘流水线的AI安全范式跃迁

漏洞挖掘正从人工驱动、工具辅助迈向AI原生时代。以Mythos为代表的新型安全大模型,不再局限于代码补丁识别或CVE匹配,而是基于程序语义建模、多阶段强化学习验证与推理时自我编排(Test-Time Compute),实现从目标识别、静态分析到POC生成的全链路闭环。其核心突破在于将‘可复现、可调度、可规模化’的漏洞发现能力工程化落地,显著提升对内存管理缺陷、符号执行路径、WAF绕过策略等高阶安全问题的建模精度。该能力已深度融入红蓝对抗、自动化渗透测试与防御知识图谱构建等关键场景,标志着AI安全从辅助工具正

congbao6525的博客 499

Navicat16/17数据库密码安全解析与实战解密指南

本文详细解析了Navicat 16/17版本中数据库密码的加密机制,并提供了实用的密码找回指南。通过导出连接文件获取加密密文,利用基于AES-128-CBC算法的本地HTML工具,可安全、离线地解密遗忘的密码。文章强调该方法仅适用于合法恢复自有密码,并给出了操作步骤与安全建议。

weixin_28835583的博客 467

基于人脸识别的课堂考勤系统 tkinter+openpyxl+face_recognition

基于face_recognition库实现人脸考勤系统功能。利用Python的tkinter模块来设计考勤系统的图形化界面,此外结合openpyxl模块,实现将学生的信息和考勤打卡数据保存到表格中,方便查看和调用。该系统具备“刷脸打卡”、“新学生注册”等功能。............

lyx4949的博客 6965

2024-06-21 Cmake中使用C++23标准模块的设置

要解决问题:cmake对modules的支持已经有了, 但是, 没有深入摸索, 估计你还是不会用.想到的思路: 疯狂试验.其它的补充: 为什么不向xmake学学, 非要搞那么晦涩.我真的挺烦编写Cmake的, 谁喜欢这玩意, 告诉我一下心法.

老林的博客 1675

Dify实战应用指南(上传需求稿生成测试用例)

摘要: Dify是一款开源大语言模型应用开发平台,通过低代码/无代码方式支持AI应用开发。平台提供五种核心应用类型,包括聊天助手、文本生成、Agent、ChatFlow和Workflow,适用于不同场景。本文以ChatFlow为例,演示如何上传需求稿自动生成测试用例。通过条件分支、文档提取器和LLM设置,实现从需求文档到测试用例的自动化转换,显著提升测试效率并降低人工误差。该方案适用于需要快速生成测试用例的软件开发场景,尤其适合非技术人员使用。

Linda的自动化测试之旅 2744

android交叉编译报错no input files的解决方法

安装NDK后,make报错"clang-18: error: no input files",即使直接使用clang命令(例如clang -c test.c)仍然报错。

louObaichu的专栏 1206

京东商品多维特征提取:基于时空大模型的实时库存预测接口设计

在电商行业,库存管理是供应链的核心环节之一。库存水平过高会导致资金占用、仓储成本增加,而库存水平过低则可能引发缺货风险,影响客户满意度和平台声誉。京东作为中国领先的电商平台,拥有海量的商品数据和复杂的业务场景,传统的库存预测方法难以应对市场动态变化和业务需求。时空大模型作为一种融合时间序列分析和空间特征提取的前沿技术,能够捕捉商品多维特征在时空维度上的变化规律,为实时库存预测提供更精准的决策依据。

FB13713612741的博客 954

antdv-<a-form>的使用

是 Ant Design Vue 中用于创建表单的组件,提供了一种结构化的方式来收集用户输入。它支持多种布局、验证、数据绑定等功能,非常适合用于处理用户输入和提交数据。

2302_81312344的博客 2619

VSCode+clangd让写C/C++代码更丝滑

使用C/C++写了十几二十年的代码了,这两年做的项目都是使用Go语言来写的代码了,主要使用Goland来写Go,写起来是相当的丝滑,自动提示、补充代码就不说了,很多IDE都有的功能,它还支持自动添加代码import包,提示如何修复错误等等。C/C++也有IDE可以做到了,这一切都要归功于LLVM的优秀设计,让编译器实现模块化,出了clang、clangd、clang-tidy等等优秀的产品,真是C/C++爱好者的福音。

witton的专栏 1万+

从0到1打造一台机器人走起来

1)本体机械结构设计,依据人体生物学和生物力学知识,结合机器人运动时各关节扭矩需求,进行合理选用电机,比如胯部需要大扭矩,腿部惯量小等2)硬件拓扑上,分层架构的信号层和功率协同工作,高带宽,低延时,硬实时3)步态规划设计与验证环节实机回溯和部署过程:Real2Sim,Sim2Sim,Sim2Real。

weixin_43163941的博客 244

能在 CPU 上运行的开源大模型推理框架

如今,大模型的发展势头迅猛,而且,大模型的演进出现了两种分化趋势:一方面,开源大模型的规模不断扩大,从最初的数十亿参数迅速扩展到数千亿参数,照这个趋势,很快就会突破万亿级的超大规模。这类巨型模型通过引入更丰富的语义理解、复杂的推理能力和跨领域知识整合,展现出强大的智能。各大厂商开展军备竞赛,为了追求更高的准确率和更强的泛化能力,大模型的“无上限”扩展不断突破技术和硬件的边界。另一方面,模型也在向小...

云水木石 1889

在 SAP BTP 上为应用开启多租户能力:基于 SaaS Provisioning 和 XSUAA 的完整实践指南

本文介绍了在SAP BTP上配置多租户应用的实战指南。主要内容包括: 多租户架构概述:解释provider子账户、consumer子账户和tenant的概念,以及数据隔离机制。 安全配置:在xs-security.json中设置tenant-mode为shared,并为SaaS Provisioning服务添加回调scope授权。 路由配置:通过manifest.yml设置TENANT_HOST_PATTERN来定义多租户访问模式,确保不同租户通过不同子域名访问同一应用。 服务绑定:将XSUAA和SaaS

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 146

从 Service Entry Sheet 按 PO 行项目追溯服务行:PACKNO 与 ESLL 层级解包实战

摘要: SAP MM模块中,外部服务采购的数据结构较为复杂,服务明细并非直接存储在采购订单行项目表EKPO中,而是通过PACKNO关联到服务包表ESLL。本文解析了从采购订单行项目EBELN+EBELP获取服务行号SRVPOS的方法,重点分析了服务包的层级结构(根包、子包SUB_PACKNO),并提供了兼容合同项目的ABAP代码实现。通过EKPO-PACKNO定位根包后,需结合ESUC和ESLL表逐层解析子包,最终获取服务明细数据,解决了服务采购场景下的数据关联难题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 174
上一篇: 官方通道还是第三方平台?MCP认证查询哪个更可靠?
下一篇: 为什么你的AI模型在Orin NX上跑不快?Python轻量部署必须避开的7个坑
deeplens
博客等级 码龄21年 176粉丝 2158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值