从 DevTools 控制台调用函数不会触发断点
Calling function from DevTools console does not trigger breakpoint
我的 Chrome DevTools 在我设置的断点处暂停。
我转到控制台,手动调用一个函数(比如,myFunc()
),它正确执行。
但是,我在myFunc()
里面设置的断点一直没有命中!我期望我调用函数的时候,代码中的函数应该被调用,断点应该被打断点!
源码极其简单:
// Import stylesheets
import './style.css';
// Write TypeScript code!
const appDiv: HTMLElement = document.getElementById('app');
appDiv.innerHTML = `<h1>TypeScript Starter</h1>`;
appDiv.__proto__.myFunc = function(){
var myCoolFunction = "My cool function"; //. <---- breakpoint on this line is never hit
console.log('myCoolFunction:', myCoolFunction);
}
console.log('appDiv', appDiv); // <---- manually call appDiv.myFunc() while paused on this line
这里是link页面:https://typescript-gmngl3.stackblitz.io/~/index.ts
Link 到 Stackblitz 中的源代码:https://stackblitz.com/edit/typescript-gmngl3
截图:
您可以在您的控制台中调用 debug(function),它应该会在您的函数的第一行添加一个断点。以下是更多详细信息:https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
在您的情况下,将其写入控制台:
debug(appDiv.myFunc);
// now you can call myFunc and it should hit a breakpoint
appDiv.myFunc()
您似乎在屏幕截图中第 12 行的断点处暂停,并且您正试图从那里调用该函数。由于调试器已经暂停在那里,我的猜测 ('guess',因为我不熟悉调试器的内部结构) 是它不能跳转到任何其他断点而不使用调试器控件。
建议的解决方法:
当调试器在第 12 行暂停时,将 appDiv
的引用分配给控制台中的一个新变量:
savedAppDiv = appDiv
然后继续并让脚本 运行 完整。之后,您可以使用存储的引用来调用 myFunc
并且它应该在其中的断点处暂停:
savedAppDiv.myFunc()
我的 Chrome DevTools 在我设置的断点处暂停。
我转到控制台,手动调用一个函数(比如,myFunc()
),它正确执行。
但是,我在myFunc()
里面设置的断点一直没有命中!我期望我调用函数的时候,代码中的函数应该被调用,断点应该被打断点!
源码极其简单:
// Import stylesheets
import './style.css';
// Write TypeScript code!
const appDiv: HTMLElement = document.getElementById('app');
appDiv.innerHTML = `<h1>TypeScript Starter</h1>`;
appDiv.__proto__.myFunc = function(){
var myCoolFunction = "My cool function"; //. <---- breakpoint on this line is never hit
console.log('myCoolFunction:', myCoolFunction);
}
console.log('appDiv', appDiv); // <---- manually call appDiv.myFunc() while paused on this line
这里是link页面:https://typescript-gmngl3.stackblitz.io/~/index.ts
Link 到 Stackblitz 中的源代码:https://stackblitz.com/edit/typescript-gmngl3
截图:
您可以在您的控制台中调用 debug(function),它应该会在您的函数的第一行添加一个断点。以下是更多详细信息:https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
在您的情况下,将其写入控制台:
debug(appDiv.myFunc);
// now you can call myFunc and it should hit a breakpoint
appDiv.myFunc()
您似乎在屏幕截图中第 12 行的断点处暂停,并且您正试图从那里调用该函数。由于调试器已经暂停在那里,我的猜测 ('guess',因为我不熟悉调试器的内部结构) 是它不能跳转到任何其他断点而不使用调试器控件。
建议的解决方法:
当调试器在第 12 行暂停时,将 appDiv
的引用分配给控制台中的一个新变量:
savedAppDiv = appDiv
然后继续并让脚本 运行 完整。之后,您可以使用存储的引用来调用 myFunc
并且它应该在其中的断点处暂停:
savedAppDiv.myFunc()