第18章:AI辅助Debug——如何将错误日志交给AI定位根因

AI+Web3-从Solidity智能合约到AI Agent
专栏收录该内容
¥15.90
¥99.00
187 篇文章

本章你将收获

  • 如何将错误日志、堆栈、代码片段组合发给AI,快速定位问题根因
  • AI分析错误的3个核心维度:环境差异、逻辑缺陷、并发竞态
  • 常见错误的AI分析Prompt模板(前端报错、后端异常、数据库错误、网络请求失败)
  • 一个完整的调试案例:从用户报错到找出问题根源的全过程
  • 我如何用AI把平均调试时间从2小时缩短到20分钟

18.1 一次让我对AI调试刮目相看的经历

去年我们上线了一个新的订单系统。上线后用户反馈偶尔会出现“支付成功但订单状态未更新”的问题。我们排查了两天,看了无数日志,始终找不到规律。最后我把相关代码和日志片段发给AI,它分析后指出:支付回调接口中使用了async但没有await,导致异步操作未完成就返回了成功响应。加上await后问题彻底解决。从那以后,我再也不怕那些“幽灵bug”了——AI成了我的调试搭档。

这一章,我会分享如何用AI高效定位Bug,以及如何设计Prompt让AI给出最精准的分析。


18.2 AI辅助Debug的3步流程

步骤 传统做法 AI辅助做法 提效比例
VIP 别只按 Tab 键:如何用 AI 解决复杂的前端 Bug 和架构难题? 本文探讨了如何充分发挥AI在前端开发中的作用,而不仅限于代码补全功能。作者指出常见的AI使用误区,强调提问方式的重要性,建议提供完整上下文(代码、报错、约束条件)。文章分享了三个实战场景:1)利用AI进行复杂Bug调试,建议提供完整错误信息并要求排查方案;2)通过角色扮演让AI协助重构大型组件,提供架构建议;3)快速生成技术选型对比报告。作者认为AI应该被视作调试导师、代码审查员和技术顾问,正确使用能显著提升开发效率和质量。 开通可读全文·733 阅读·16 点赞·5 收藏 阅读全文

相关推荐

Mythos技术跃迁:从AI辅助到自主漏洞挖掘的范式革命

大语言模型在代码安全分析中的能力演进,已从基础语法理解迈向深度语义建模与自主推理。其核心原理在于激活稀疏度优化、多尺度思维树架构及0day利用三元组强化训练,显著提升对未知漏洞的发现能力与利用链生成精度。该技术突破不仅重塑了渗透测试、SRE运维和CI/CD安全左移等工程实践,更推动AI从‘工具使用者’升级为具备验证闭环的‘可执行责任主体’。Mythos所代表的自主攻击假设空间构建与终端语义理解能力,标志着大模型在真实系统级任务中首次实现工业级鲁棒性。

weixin_33725515的博客 312

ActiveMQ管理页面密码忘了怎么办?5.18.4版本重置教程(附验证步骤)

本文详细介绍了ActiveMQ 5.18.4版本管理页面密码重置的全流程解决方案,包括环境检查、密码修改、服务重启及验证步骤。特别针对管理端页面登录用户密码遗忘问题,提供了MD5加密密码生成和常见故障排除方案,帮助运维人员快速恢复访问权限。

weixin_30566063的博客 376

Qwen3.5蒸馏18B部署实战:硬件、GGUF兼容性与能力边界

大语言模型蒸馏是指在保留核心能力的前提下压缩模型规模,以降低推理成本。其原理依赖知识迁移与行为模仿,技术价值在于平衡性能与资源开销,广泛应用于边缘设备部署、API服务降本及科研快速迭代等场景。然而,蒸馏模型并非简单缩放,尤其像Qwen3.5-18B这类基于原生72B蒸馏的版本,常因RoPE基频偏移、上下文长度不一致、tool call token ID错位等GGUF元数据差异,导致LM Studio报错‘no lm runtime found’或Ollama卡在‘verifying manifest’。本文

weixin_33743703的博客 438

OpenCode安装失败根因解析:执行策略、包管理器与权限模型

现代前端开发环境中的CLI工具安装,本质是操作系统权限模型、Shell执行策略与包管理器语义的三方对齐过程。npm、Homebrew、Scoop、Chocolatey等工具并非简单‘装软件’,而是各自承载Windows PowerShell策略、macOS SIP机制或Linux用户空间隔离等底层规则的具象化接口。当出现‘npm.ps1被禁止运行’或‘Homebrew Ruby版本不兼容’等报错,实际反映的是Node.js运行时上下文、全局PATH注册路径与Shell初始化配置之间的断裂。OpenCode作

weixin_30335353的博客 367

OpenClaw:多AI模型协同调度与Windows零失败部署指南

AI编程助手正从单模型调用迈向多模型协同工作流,其核心挑战在于异构模型接入、上下文编排与跨环境稳定性。OpenClaw作为轻量级本地化AI技能编排工具,通过抽象Kimi、Tavily、Brave等为可插拔skill,统一解决API路由、超时熔断、错误重试与结果归一化问题。它不替代代码编写,而是构建AI能力的‘胶水层’,显著提升工程化落地效率。尤其针对Windows企业开发场景中常见的PowerShell执行策略限制、npm脚本加载失败、Node.js版本兼容性等高频痛点,提供Corepack代理、npx免安

weixin_34411563的博客 401

Gemini Mac原生App:深度集成macOS的AI工作流引擎

AI助手不再只是对话窗口,而是嵌入操作系统底层的智能协作者。理解‘原生应用’的本质,需从系统级API调用、跨应用上下文感知和本地数据管道三大原理切入——它通过NSRunningApplication实时识别当前软件,借助NSPasteboard自动聚合剪贴板与文档元数据,并依托设备密钥加密实现隐私优先的本地化处理。这种技术价值在于将AI从‘任务响应者’升级为‘状态预判者’,显著压缩窗口切换与上下文重建时间,在开发者调试、设计师协作、运营文案生成等高频场景中形成真正可落地的工作流闭环。

weixin_30457551的博客 353

code-server生产部署指南:Ubuntu 18.04 + Nginx + systemd 完整实践

云IDE是现代开发基础设施的关键组件,其核心在于将完整桌面级编辑器能力通过Web协议安全交付。code-server作为VS Code的开源Web化实现,依托Code-OSS内核,完整继承插件生态、调试协议与语言服务,本质是轻量级云原生开发环境。它解决的是跨设备一致性、环境标准化与团队协作效率三大工程痛点,适用于远程办公、DevOps流水线集成、教学实验平台及SaaS化开发工具交付等场景。本文聚焦Ubuntu 18.04 LTS这一稳定基线,详解Nginx反向代理(含WebSocket长连接配置)、syst

weixin_34248705的博客 301

oh-my-codex 入门指南:本地AI编程工作流搭建与实战

oh-my-codex 是一个面向开发者、基于 Node.js 的本地化 AI 编程辅助框架,它不提供 GUI 或在线服务,而是通过 CLI 命令将大模型能力深度集成进已有开发流程(如 git、npm、vite)。其核心原理是利用 TypeScript 类型约束、插件化架构和上下文感知(Git 状态、项目配置、文件结构)构建可复用、可审计、可 CI/CD 集成的确定性工作流。技术价值在于降低 AI 工具使用门槛的同时保障工程可控性——所有操作本地执行、配置即代码、API 调用可追溯。典型应用场景包括自动化单

weixin_34094282的博客 272

Vibe Coding实战:用Claude Code和Codex实现AI协作开发全流程

AI编程正从对话问答走向真正的协作开发,Vibe Coding成为开发者热议的实践范式。其核心并非放弃写代码,而是以自然语言描述需求与约束,让AI在本地项目中直接完成文件生成、代码修改、命令执行与报错修复。这种工作流显著降低原型搭建和重复编码的门槛,尤其适合快速验证想法、补充跨技术栈盲区及批量重构等场景。本文以Claude Code和Codex两款主流AI编程工具为对象,从环境准备、安装认证到项目实战,完整演示如何用自然语言驱动AI生成Flask API,并覆盖常见报错排查与工程实践建议。无论零基础还是资深

weixin_33976072的博客 421

AI 辅助 Debug 实战:从“瞎猜”到“精准定位”的 3 个工程化套路

Debug 不是问答,是假设-验证-收敛。AI 是加速器,不是算命先生。AI 写代码快,但修 Bug 依然靠“人肉猜”。把 5000 行日志丢进对话框。AI 回你:“可能是网络超时或配置错误,建议检查连接池。” 正确的废话。问题不在 AI 笨。在于你喂数据的方式不对。这篇让我们一起来聊聊 3 个能直接跑通的工程化排障套路。

weixin_41719705的博客 259

程序员必备的7个AI神器:Debug效率提升300%

AI在程序开发中的应用,特别是在调试环节,正为程序员提供越来越多的强大工具。这些工具不仅帮助开发者高效地发现bug、提高代码质量,还能让开发者专注于更具创造性和复杂性的任务。无论你是初学者还是资深开发者,借助AI工具,你都能大幅提高调试效率,甚至将调试时间缩短300%。因此,学会使用这些AI神器,并将它们纳入日常开发流程,将成为未来程序员的必备技能。AI工具的迅速发展意味着,程序员不仅要学会编程,还需要学会如何与AI协作。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1393

AI辅助调试工具claude-debugs-for-you:自动化代码调试工作流实践

在软件开发领域,调试(Debug)是定位和修复代码错误的核心环节,传统依赖人工逐行排查的方式效率低下且易受思维局限。随着人工智能技术的发展,基于大语言模型的代码分析能力为调试工作带来了新范式。其技术原理在于通过结构化提示词工程,将错误上下文、代码片段和环境信息智能整合,调用AI模型进行模式识别与逻辑推理,从而快速定位问题根因。这一技术的核心价值在于将零散的调试咨询转变为自动化工作流,显著提升问题排查效率。在实际应用场景中,此类工具不仅能处理简单的语法错误,更能应对复杂的依赖冲突、逻辑缺陷等疑难问题,并可集成

weixin_42628846的博客 404

从零到一:RJ71EN71 ModbusTCP配置的避坑指南与实战技巧

本文详细解析三菱RJ71EN71模块的ModbusTCP配置全流程,涵盖GX Works3参数设置、地址映射、通信调试等核心环节。针对工业环境中常见的IP冲突、软元件分配错误、通信超时等高频问题提供实战解决方案,帮助工程师快速构建高可靠性通信网络,避免项目延期风险。

zzz56的博客 332

单细胞数据互转实战:从Scanpy的h5ad到Seurat对象的四种高效方法

本文针对单细胞数据分析中Scanpy的h5ad格式与Seurat对象互转的常见难题,详细对比了SeuratDisk、anndataR、schard和sceasy四种高效转换方法。文章从实战出发,剖析了每种方法的原理、操作流程、优缺点及避坑指南,并提供了清晰的选型策略,帮助用户根据数据特点选择最佳方案,实现跨平台数据的无缝衔接。

weixin_29099217的博客 450

Nordic BLE芯片RF测试

BLE设备在过蓝牙BQB,FCC,ETSI等各种认证时实验室一般都需要做RF各项指标的测试。Nordic公司的SDK包中提供了两种RF测试程序,一种是DTM,另一种是Radio test。这两种都可以做RF指标测试但各自又有区别。DTM是按照蓝牙规范中Direct test mode所要求数据格式测试(数据格式定义参看:Bluetooth Core Specification v5.0->...

5639

《AI大模型评测与智能测试》

第三篇“实践蓝图”(第6-7章)着眼于测试领域AI应用,重点介绍了RAG、AI Agent开发及构建端到端智能测试系统的方法。本书聚焦AI时代的“质量”核心,以“AI赋能测试”(AI For Testing)与“AI模型评测”(Testing For AI)为双轮驱动。内容不仅深入剖析如何科学度量AI大模型的内在质量,还系统讲解如何利用AI赋能传统软件测试,帮助读者贯通从模型原理、评测到应用开发的全链路知识。

酌沧 1140

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3377

【论文复现】HiDDeN:Hiding Data With Deep Networks

(标签)是 float 类型,但代码中传入的是 long 类型(整数标签)。函数参数解析方式变化,导致无法正确保存生成的图像结果。这是因为新版torchvision的。使用预训练模型进行隐写和提取测试。HiDDeN支持多种噪声层组合。打印变量的类型,分别是。

qq_69146676的博客 971

告别Windows!Oculus Quest 2在Mac M1上的串流实战(scrcpy+SideQuest避坑指南)

本文为Mac M1用户提供了Oculus Quest 2在macOS上实现高清低延迟串流的实战指南。通过使用开源工具scrcpy和SideQuest,绕开官方限制,详细讲解了从环境准备、无线调试到画质与延迟优化的完整步骤,重点解决了Apple Silicon芯片Mac的连接与性能问题,助你告别Windows依赖。

weixin_29224309的博客 309

Vue3 + 高德地图实现车辆电子围栏监控与报警

通过本文的实现,我们完成了一个通用的车辆电子围栏监控功能:支持多种围栏类型。支持进入/离开/双向报警。使用缓存机制避免重复告警。可与Vue3 + 高德地图无缝集成。在实际项目中,可以结合WebSocket 实时定位,实现车辆的实时监控 + 围栏告警系统🚀。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1035

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 第17章:E2E测试生成——用AI生成端到端测试脚本
下一篇: 第19章:代码审查助手——用AI进行Code Review,发现潜在bug
sfishfly
博客等级 码龄1年 17粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值