Inhaltsverzeichnis
Debugger-Prinzip
vscode debugger 进阶
彩蛋
总结
Heim Web-Frontend js-Tutorial Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Aug 11, 2021 am 10:08 AM
debugger vscode

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Lernen nodejs Was ist das Wichtigste? Vielleicht hat jeder seine eigene Antwort.

Ich denke, dass beim Erlernen von NodeJS neben der Beherrschung der grundlegenden API und einiger häufig verwendeter Pakete die wichtigste Fähigkeit darin besteht, den Umgang mit dem Debugger zu erlernen. Denn wenn der Prozess komplex ist, kann Ihnen das Debuggen von Haltepunkten dabei helfen, die Logik besser zu klären, und wenn es Fehler gibt, können Sie das Problem auch schneller lokalisieren. [Empfohlenes Lernen: „nodejs-Tutorial“, „vscode-Tutorial“]

Onkel Wolf sagte, dass die Frage, ob Sie den Debugger verwenden können, ein wichtiger Indikator ist, um die NodeJS-Ebene eines Programmierers zu unterscheiden.

In diesem Artikel werden die Prinzipien des Debuggers und die Verwendungsfähigkeiten des vscode-Debuggers erläutert.

Debugger-Prinzip

Wenn Sie beim Ausführen von NodeJS-Code den Parameter --inspect(可以打断点) 或者 --inspect-brk mitbringen (Sie können den Punkt unterbrechen und in der ersten Zeile unterbrechen), wird er im Debugger-Modus gestartet:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Ja, sehen Sie, der Knoten wurde gestartet Bei einem Web-Socket-Server lautet die Adresse: ws://127.0.0.1:9229/78637688-e8e0-4582-80cc-47655f4bff66

Warum startet der Debugger einen Web-Socket-Server?

Die Bedeutung des Debuggers besteht darin, irgendwo anzuhalten, ihn in einem einzigen Schritt auszuführen und Variablen in der Umgebung anzuzeigen. Das Festlegen von Haltepunkten und das Offenlegen der Variablen des aktuellen Kontexts besteht darin, einen WebSocket-Server zu starten. Zu diesem Zeitpunkt müssen Sie nur einen WebSocket-Client starten und eine Verbindung zum Server herstellen, um den NodeJS-Code zu debuggen.

v8-Debug-Protokoll

Wie kommunizieren der Debugger-Server und der Debugger-Client nach dem Herstellen der Verbindung? Dabei handelt es sich um das v8-Debug-Protokoll.

Kommunizieren Sie über ein Format, das von beiden Parteien erkannt werden kann, wie zum Beispiel:

Setzen Sie einen Haltepunkt in Zeile 100 von test.js:

{
    "seq":118,
    "type":"request",
    "command":"setbreakpoint",
    "arguments":{
        "type":"script",
        "target":"test.js",
        "line":100
    }
}
Nach dem Login kopieren

Sehen Sie sich dann die Variablen im aktuellen Bereich an:

{
    "seq":117,
    "type":"request",
    "command":"scope"
}
Nach dem Login kopieren

Nach dem Ausführen eines Ausdrucks:

{
    "seq":118,
    "type":"request",
    "command":"evaluate",
    "arguments":{
        "expression":"a()"
    }
}
Nach dem Login kopieren

Weiter ausführen:

{
    "seq":117,
    "type":"request",
    "command":"continue"
}
Nach dem Login kopieren

Auf diese Weise kann der Client dem Debugger-Server mitteilen, wie er den Code ausführen soll.

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Debugger-Client

Debugger-Client verfügt im Allgemeinen über eine Benutzeroberfläche (natürlich können Sie das Debuggen auch über Befehle in der Befehlszeile durchführen, dies wird jedoch im Allgemeinen nicht durchgeführt). Zu den gängigen JS-Debugger-Clients gehören Chrome Devtools und Vscode Debugger.

Wir schreiben ein einfaches JS-Skript und führen es über den Knoten --inspect-brk aus:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Sie können sehen, dass es auf Port 9229 startet.

Dann verbinden wir uns jeweils über zwei Clients damit.

chrome devtools

Geben Sie chrome://inspect in die Chrome-Adressleiste ein und klicken Sie dann auf Konfigurieren, um den Zielport zu konfigurieren:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Geben Sie jetzt den Port 9229 ein:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Dann können Sie sehen, dass Chrome das Ziel gescannt hat, und auf „Inspizieren“ klicken, um eine Verbindung zum Debugger-Server herzustellen.

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Danach können Sie Haltepunkte festlegen, Einzelschrittausführungen durchführen, Ausdrücke ausführen, Bereichsvariablen anzeigen usw. Diese Funktionen werden alle über das v8-Debugprotokoll implementiert.

vscode-Debugger

Das Schreiben von Code in vscode und das Debuggen in Chrome Devtools ist problematischer. vscode unterstützt auch den Debugger. Sie können vscode direkt zum Debuggen verwenden.

Die Möglichkeit, die Debugging-Funktionen von vscode zu nutzen, besteht darin, die Konfiguration .vscode/launch.json im Stammverzeichnis des Projekts zu ändern.

anhängen

Klicken Sie auf die Schaltfläche in der unteren rechten Ecke, um ein Konfigurationselement hinzuzufügen. Wählen Sie hier „nodejs attachment“ aus:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Da der Websocket-Debugger-Server über node --inspect-brk gestartet wurde, müssen Sie nur den Websocket-Client starten und dann eine Verbindung zum 9229-Port herstellen.

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

点击左侧的按钮,就可以连上 debugger server 开始调试:

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

launch

这样先通过 node --inspect-brk 启动 debugger server,然后再添加 vscode debug 配置来连接上太麻烦了,能不能把这两步合并呢?

当然可以,只要添加一个 launch 的配置:

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

这里的 type 是 launch,就是启动 debgger server 并且启动一个 debugger client 连接上该 server。运行的程序是根目录下的 index2.js,还可以设置 stopOnEntry 来在首行断住。

点击调试,就可以看到能够成功的调试该 js 文件。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

vscode 会启动 debugger server,然后启动 debugger client 自动连接上该 server,这些都不需要我们去关心。

这样我们就可以成功的使用 vscode debugger 来调试 nodejs 代码。

vscode debugger 进阶

debugger client 中我们最常用的还是 vscode,这里着重讲一下 vscode debugger 的各种场景下的配置。

sourcemap

如果调试 ts 代码,肯定不能调试编译后的代码,要能够映射回源码,这个是 sourcemap 做的事情。调试工具都支持 sourcemap,比如 chrome devtools 和 vscode debugger,都支持文件末尾的 sourcemap url 的解析:

//# sourceMappingURL=index.js.map
Nach dem Login kopieren

这样当调试 index.js的时候,如果它是 ts 编译的出来的,就会自动找到对应的 ts。

当然,如果调试配置里面直接指定了 ts,那么要能够调试需要再配置 outFiles,告诉 vscode 去哪里找 sourcemap。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

这样,在 ts 源码中打的断点和在编译出的 js 打的断点都能生效。

多进程调试

当代码中有子进程的时候,就有了第二条控制流,需要再启动一个 debugger。

比如 vscode,它是基于 electron,需要启动一个主进程,一些渲染进程。主进程是通过 launch 启动的,而渲染进程则是后来 attach 的。

主进程启动的时候,通过 --remote-debugging-port 来指定子进程自动的时候的 debugger server 的端口。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

outFiles 来指定 sourcemap 的位置,这样才可以直接调试 ts 源码。runtimeExecutable 是用 vscode 的运行时替代掉了 nodejs(一般不需要设置)。

然后渲染进程是后面启动的,我们通过参数配置了会启动在 9222 端口,那么只要 attach 到那个端口就可以调试该进程了。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

vscode 支持多 target 调试,也就是可以在 vscode 里面同时启动 多个 debugger。可以切换不同的 debugger 来调试不同的进程。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

彩蛋

debugger 只能打断点么,不是的,它还可以这么用,加日志,不污染源码。

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

1Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

2Lassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen

总结

debugger 的使用是一项很重要的能力,对于 nodejs 水平的提升很有帮助。

nodejs debugger 的原理是 js 引擎会启动 debugger server(websocket),等待客户端连接,我们可以通过各种 debugger client 连上来进行调试,比如 chrome devtools、vscode debugger。

Um NodeJS-Code zu debuggen, ist es besser, den vscode-Debugger zu verwenden (natürlich werden manchmal auch Chrome Devtools zum Debuggen verwendet, und eine Speicheranalyse basierend auf dem Speicher von Chrome Devtools ist sehr hilfreich beim Auffinden von Speicherverlustproblemen).

Die Verwendung des vscode-Debuggers dient hauptsächlich dem Hinzufügen einer Debugging-Konfiguration in .vscode/launch.json.

Die Debugging-Konfiguration ist in „Starten“ und „Anhängen“ unterteilt:

  • Launch startet den Debugger-Server und stellt mit dem Debugger-Client eine Verbindung zu ihm her.
  • Attach startet lediglich den Debugger-Client, um eine Verbindung zum vorhandenen Debugger-Server herzustellen. Sie müssen also angeben, was Port

spezifische Konfiguration. Häufig verwendete Elemente sind:

  • outFiles gibt den Speicherort der Sourcemap an, die zum Debuggen von TS-Quellcode und anderen Codes verwendet wird, die kompiliert werden müssen.
  • stopOnEntry stoppt in der ersten Zeile.
  • args, um einen Befehl anzugeben Zeilenparameter
  • runtimeAusführbar, wenn die Ausführung nicht nodejs ist Manchmal müssen Sie angeben, z. B. vscode oder einige andere Laufzeiten

Basierend auf diesen Konfigurationen können wir NodeJS-Code in verschiedenen Szenarien debuggen, der kompiliert werden muss, oder in mehreren Prozessen.

Es ist keine Übertreibung zu sagen, dass es viel einfacher sein wird, verschiedene NodeJS-Codes zu verstehen, wenn Sie mit der Verwendung des Debuggers vertraut sind. Ich hoffe, dieser Artikel kann jedem helfen, das Prinzip des Debuggers zu verstehen und Chrome Devtools oder Vscode Debugger zum Debuggen von NodeJS-Code verwenden zu können. Erfahren Sie, wie Sie mit Sourcemap und mehreren Prozessen debuggen.

Ursprüngliche Adresse: https://juejin.cn/post/6981820158046109703

Autor: zxg_Gott sagte, es muss Licht sein

Weitere Kenntnisse im Bereich Programmierung finden Sie unter: Einführung in die Programmierung! !

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Verwendungsfähigkeiten des Debuggers in vscode sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So zeigen Sie Word-Dokumente in vscode an. So zeigen Sie Word-Dokumente in vscode an So zeigen Sie Word-Dokumente in vscode an. So zeigen Sie Word-Dokumente in vscode an May 09, 2024 am 09:37 AM

Öffnen Sie zunächst die vscode-Software auf dem Computer, klicken Sie links auf das Symbol [Erweiterung], wie in ① in der Abbildung gezeigt. Geben Sie dann [officeviewer] in das Suchfeld der Erweiterungsoberfläche ein, wie in ② in der Abbildung gezeigt Wählen Sie dann aus der Suche [officeviewer] aus, um die Ergebnisse zu installieren, wie in ③ in der Abbildung gezeigt. Öffnen Sie schließlich die Datei, z. B. docx, pdf usw., wie unten gezeigt

So zeichnen Sie ein Flussdiagramm mit vscode_So zeichnen Sie ein Flussdiagramm mit visual_studio-Code So zeichnen Sie ein Flussdiagramm mit vscode_So zeichnen Sie ein Flussdiagramm mit visual_studio-Code Apr 23, 2024 pm 02:13 PM

Öffnen Sie zunächst den Visual Studio-Code auf dem Computer, klicken Sie auf die vier quadratischen Schaltflächen auf der linken Seite, geben Sie dann draw.io in das Suchfeld ein, um das Plug-In abzufragen, und klicken Sie auf „Installieren“. Erstellen Sie dann eine neue test.drawio-Datei Wählen Sie die Datei „test.drawio“ aus und rufen Sie den Bearbeitungsmodus auf der linken Seite auf. Klicken Sie nach dem Zeichnen auf „Datei“ → „Einbetten“ und dann auf „SVG kopieren“. Code. Fügen Sie den kopierten SVG-Code in den HTML-Code ein. Klicken Sie auf das Bild auf der Webseite. Auf dieser Seite können Sie hinein- und herauszoomen Hier klicken wir auf das Bleistiftmuster in der unteren rechten Ecke, um zur Webseite zu springen.

Wie schreibe ich Maude in Vscode_Wie schreibe ich Maude in Vscode Wie schreibe ich Maude in Vscode_Wie schreibe ich Maude in Vscode Apr 23, 2024 am 10:25 AM

Zunächst können Sie im vscode-Plugin-Manager nach dem Maude-Plugin suchen. Erstellen Sie dann eine neue Datei mit der Erweiterung maude, um die Codefragmente und die Syntaxhervorhebung von maude zu verwenden. Terminal -> Neues Terminal kann das integrierte vscode-Terminal im aktuellen Ordner öffnen, um das Maude- oder Full-Maude-Programm auszuführen. Im offiziellen Tutorial von Maude gibt es auch Beispiele für http-Clients, die wie in der Abbildung gezeigt aufgerufen und ausgeführt werden können. Wenn Sie Dateien mit der Erweiterung „fm“ verknüpfen möchten, öffnen Sie die Einstellungen, suchen Sie in den Benutzereinstellungen nach Dateizuordnungen und öffnen Sie „settings.json“. Fügen Sie einfach einen Eintrag zur Dateizuordnung hinzu, also den Eintrag von *.fm bis maude. Aber voll

Caltech-Chinesen nutzen KI, um mathematische Beweise zu untergraben! Beschleunigen Sie 5-mal schockiert Tao Zhexuan, 80 % der mathematischen Schritte sind vollständig automatisiert Caltech-Chinesen nutzen KI, um mathematische Beweise zu untergraben! Beschleunigen Sie 5-mal schockiert Tao Zhexuan, 80 % der mathematischen Schritte sind vollständig automatisiert Apr 23, 2024 pm 03:01 PM

LeanCopilot, dieses formale Mathematikwerkzeug, das von vielen Mathematikern wie Terence Tao gelobt wurde, hat sich erneut weiterentwickelt? Soeben gab Caltech-Professorin Anima Anandkumar bekannt, dass das Team eine erweiterte Version des LeanCopilot-Papiers veröffentlicht und die Codebasis aktualisiert hat. Adresse des Bildpapiers: https://arxiv.org/pdf/2404.12534.pdf Die neuesten Experimente zeigen, dass dieses Copilot-Tool mehr als 80 % der mathematischen Beweisschritte automatisieren kann! Dieser Rekord ist 2,3-mal besser als der vorherige Basiswert von Aesop. Und wie zuvor ist es Open Source unter der MIT-Lizenz. Auf dem Bild ist er Song Peiyang, ein chinesischer Junge

So aktivieren Sie Hintergrundaktualisierungen in vscode. So aktivieren Sie Hintergrundaktualisierungen in vscode So aktivieren Sie Hintergrundaktualisierungen in vscode. So aktivieren Sie Hintergrundaktualisierungen in vscode May 09, 2024 am 09:52 AM

1. Klicken Sie nach dem Öffnen der Benutzeroberfläche zunächst auf das Dateimenü in der oberen linken Ecke. 3. Klicken Sie dann auf die Schaltfläche „Einstellungen“, die angezeigt wird. 4. Klicken Sie abschließend mit der Maus, um die Schaltfläche „Laden Sie die neue VSCode-Version herunter“ im Hintergrund unter Windows zu aktivieren und zu aktivieren, und starten Sie das Programm neu.

So fügen Sie Dateien zum vscode-Arbeitsbereich hinzu. So fügen Sie Dateien zum vscode-Arbeitsbereich hinzu So fügen Sie Dateien zum vscode-Arbeitsbereich hinzu. So fügen Sie Dateien zum vscode-Arbeitsbereich hinzu May 09, 2024 am 09:43 AM

1. Öffnen Sie zunächst die vscode-Software, klicken Sie auf das Explorer-Symbol und suchen Sie das Arbeitsbereichsfenster. 2. Klicken Sie dann auf das Dateimenü in der oberen linken Ecke und suchen Sie nach der Option „Ordner zum Arbeitsbereich hinzufügen“. 3. Suchen Sie schließlich den Speicherort des Ordners im Klicken Sie auf der lokalen Festplatte auf die Schaltfläche „Hinzufügen“.

So deaktivieren Sie die WSL-Konfigurationsdatei in vscode. So deaktivieren Sie die WSL-Konfigurationsdatei in vscode So deaktivieren Sie die WSL-Konfigurationsdatei in vscode. So deaktivieren Sie die WSL-Konfigurationsdatei in vscode May 09, 2024 am 10:30 AM

1. Öffnen Sie zunächst die Option „Einstellungen“ im Einstellungsmenü. 2. Suchen Sie dann die Spalte „Terminal“ auf der häufig verwendeten Seite. 3. Deaktivieren Sie abschließend die Schaltfläche „usewslprofiles“ auf der rechten Seite der Spalte.

So stellen Sie das sanfte Einfügen von Animationen in VScode ein VScode-Tutorial zum Festlegen des sanften Einfügens von Animationen So stellen Sie das sanfte Einfügen von Animationen in VScode ein VScode-Tutorial zum Festlegen des sanften Einfügens von Animationen May 09, 2024 am 09:49 AM

1. Klicken Sie nach dem Öffnen der Benutzeroberfläche zunächst auf die Arbeitsbereichsoberfläche. 2. Klicken Sie dann im geöffneten Bearbeitungsbereich auf das Menü „Datei“. 3. Klicken Sie dann auf die Schaltfläche „Einstellungen“ in der Spalte „Einstellungen“. 4. Klicken Sie abschließend mit der Maus, um die CursorSmoothCaretAnimation zu überprüfen Klicken Sie auf die Schaltfläche und speichern Sie es. Stellen Sie es einfach ein

See all articles