首页 > 其他分享 >为什么开启sourcemap后打断点,即使取消断点,实际上还是会断住

为什么开启sourcemap后打断点,即使取消断点,实际上还是会断住

时间:2024-04-03 13:47:46浏览次数:17  
标签:会断 浏览器 映射 Source 开发工具 sourcemap 源代码 断点

开启 Source Maps 后,当在开发工具中为源代码设置断点时,实际上是将断点映射到了经过编译、压缩或打包后的生产代码中相应的位置。Source Maps 的作用就是建立起源代码与编译后代码之间的对应关系,使得开发者能够在查看和调试源代码时如同直接操作未经处理的原始代码一样。

即使取消了断点,有时候仍然会感觉到“断住”的现象,可能有以下几种原因:

  1. 缓存问题
    浏览器或者开发工具可能存在缓存机制,导致 Source Map 或者实际的断点状态没有被及时更新。尽管你在源代码中取消了断点,但如果开发工具仍在使用旧的缓存数据,可能会继续在之前设置断点的地方暂停执行。解决办法通常是清除浏览器缓存、强制刷新页面(如使用 Chrome 中的 Ctrl + Shift + R 快捷键),或者在开发工具设置中确保“Disable cache”(禁用缓存)选项已被启用。

  2. 断点残留
    开发工具内部可能因为某种原因(如bug)未能正确移除已取消的断点。尝试关闭并重新打开开发者工具,或者重启浏览器,以确保断点状态的完全重置。

  3. 源代码与映射关系不匹配
    如果 Source Map 文件与当前运行的代码版本不匹配(例如,由于部署了新版本代码但未同时更新 Source Map),可能会导致断点映射错误。即使取消了断点,由于映射关系混乱,浏览器可能在错误的位置暂停。确保项目部署时 Source Map 文件与对应的代码文件同步更新,且版本一致。

  4. 插件或扩展影响
    某些浏览器插件或开发工具扩展可能会影响断点的行为。禁用或暂时卸载可能干扰调试流程的插件,看看是否解决了问题。

  5. DevTools 设置问题
    确认 DevTools 的设置中关于 Source Maps 的选项没有被意外更改,比如确认“Enable JavaScript source maps”(启用 JavaScript 源地图)处于启用状态,且没有其他可能导致断点异常的设置。

  6. 源代码映射错误
    如果 Source Map 文件本身存在问题,如映射关系错误或格式不正确,可能会导致断点无法正确地被移除或映射到正确位置。检查构建工具(如 Webpack、Rollup、UglifyJS 等)的配置,确保 Source Maps 正确生成,并且没有语法错误或版本兼容性问题。

若以上常规排查步骤均无效,且问题持续存在,可能是遇到了开发工具的特定 bug 或罕见情况。这种情况下,可以尝试更新浏览器至最新版本,或者报告给开发工具的官方支持渠道,提供详细的复现步骤和环境信息,以便他们进一步诊断和修复问题。

标签:会断,浏览器,映射,Source,开发工具,sourcemap,源代码,断点
From: https://www.cnblogs.com/longmo666/p/18112489

相关文章

  • 数学建模-------MATLAB分支循环&&断点调试
    1.if语句(1)分段函数的引入(这里的数据表示的是分数的不同区间对应的等级)(1)这个就是一个十分简单的if语句,无论是if还是elseif后面都是不能添加任何分号的,这个例子就是一个分段的函数,在不同的区间赋予不同的等级,这里划分了1,2,3,4一共4个等级,只有前面的三个全部都不满足的时候,才......
  • Go断点续传
    安装第三方包gogetgithub.com/tus/tusd/v2packagemainimport( "fmt" "net/http" "github.com/tus/tusd/v2/pkg/filestore" tusd"github.com/tus/tusd/v2/pkg/handler")funcmain(){ //本地磁盘 store:=filestore.FileS......
  • vscode远程连接docker容器打断点调试python项目
    vscode远程连接服务器docker容器前提:本地和远程都安装docker插件。1.安装完docker插件后点击插件图标2.如果登录的账号没有docker权限的会会报权限不足,使用以下命令把用户加到docker权限组中sudogpasswd-a<当前登陆用户名>docker#从用户组中删除:sudogpasswd-d<当前......
  • DSP-CCS12在线仿真,设置断点提示AET资源不够!
    刚刚开始学习DSP,在用CCS12开发环境在线仿真时出现这样的提示:"ThistaskcannotbeaccomplishedwiththeexistingAETresources."网上查找一番,得出这样的解释:CCS会默认载入工程上一次设置的断点,会占用断点资源;另外,手动暂停和使能CIO功能也会占用一个断点。这样很容易就就出现......
  • 11. 折叠反射镜面和坐标断点
    导论:更好地了解坐标断点,为倾斜和偏心系统设立符号约定,反射镜面的应用。设计流程:1.设置入瞳直径:20;默认0视场和波长。2.到镜头数据编辑器,把含光阑的标准面改为近轴面,把光阑面厚度设为100,这个是近轴镜片的缺省焦距,会产生一个焦距为F/5的镜片。3.查看2d图,会看到左边出现一个......
  • goland dlv 断点无效
    定位原因:1.打开HelpDebugLogSettings输入#com.goide.dlv.DlvVm2.collectlogandDiagnosticData我的解决办法:$gitclonehttps://github.com/go-delve/delve$cddelve$goinstallgithub.com/go-delve/delve/cmd/dlvhttps://github.com/go-delve/delve/tree/master......
  • JAVA实现大文件分片上传断点续传
    直接上代码importorg.springframework.web.multipart.MultipartFile;importjava.util.concurrent.CompletableFuture;importorg.apache.commons.lang3.StringUtils;importlombok.extern.slf4j.Slf4j;importjava.text.DecimalFormat;importjava.io.*;@Slf4jpublic......
  • 滴水逆向笔记系列-win32总结2-45.esp寻址_定位回调函数-46.子窗口_消息处理函数-47.资
    第四十五课win32esp寻址_定位回调函数自己vs编译的exe入口函数好像和课程视频哩的vc6不一样,没办法跟着视频走,可以用课件里给的作业exe勉强跟着视频学,前面的都差不多,课件下载地址:https://www.bcdaren.com/video/videoPlay/3303185150621818881.win32应用程序入口识别没加过壳......
  • VS - 打断点/本地调试/远程调试 问题
    简介主要是调试时碰到的问题本地调试调试打断点无效解决方法1、配置属性->连接器->调试->生成调试信息->选择生成调试信息(/DEBUG)2、配置属性->C/C++->常规->调试信息格式选择程序数据库(/ZI)单步调试在release模式下,发现不能单步,会跳过某些行(配置属性设置问题)配置属性......
  • chrome devtool 开发者工具 控制台历史、断点历史 导出
    letlocalStorageObject={};//创建一个空对象for(leti=0;i<localStorage.length;i++){  constkey=localStorage.key(i);//获取第i个项的键名  constvalue=localStorage.getItem(key);//根据键名获取对应的值  localStorageObject[key]=va......