• Stars
    star
    177
  • Rank 214,979 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Debugging extensions for Microsoft Edge and other Chromium-based browsers

JsDbg: Browser-based debugging extensions

JsDbg is a tool that provides browser developers with a web-based platform for native debugger extensions. Browser developers can use this tool to visualize large and complex data structures within the web platform, such as the DOM tree and accessibility tree. Unlike traditional debugging extensions that are debugger specific, JsDbg extensions are written with web technologies to run in the browser, which allows them to work across platforms and debuggers. By leveraging the benefits of HTML/CSS/JS, the extensions can also have richer user interfaces and functionality than what is typically present in a debugging extension.

Using JsDbg

Supported debuggers and platforms

JsDbg currently supports WinDbg and the Visual Studio debugger on Windows, and GDB on Linux. Support for additional debuggers (ex. LLDB) and platforms (ex. MacOS) will be available in the future. If you wish to use JsDbg with a debugger that is currently unsupported, please file an issue (or upvote an existing one) to track your request.

JsDbg for WinDbg

Setup

  1. Download the JsDbg WinDbg extension. (This extension changes infrequently because JsDbg extensions can be updated without updating the WinDbg extension. [Last update: Jan 30th, 2019])

  2. Copy jsdbg.dll into the winext folder located next your windbg.exe installation. Make sure to use the x64 version of the dll for 64-bit WinDbg, and the x86 version for 32-bit WinDbg.

Usage

  1. Attach WinDbg to a running process or memory dump of Microsoft Edge/Chromium.

  2. In the WinDbg command window, run !jsdbg.jsdbg, or .load jsdbg.dll followed by !jsdbg.

  3. The JsDbg server will launch and prompt you to select a browser. If the debugger is attached to one browser, it is recommended that you choose a different browser for JsDbg.

JsDbg for Visual Studio

Setup

  1. Install the JsDbg Visual Studio (VS) extension. (This extension should be able to update without a re-install. To install the update, restart VS, use the extension once, and then restart VS again.)

Usage

  1. Attach the VS debugger to a running process or memory dump of Microsoft Edge/Chromium.

  2. Break into the running process using the Pause icon on the Debug toolbar, or Debug -> Break All.

  3. Launch JsDbg by clicking the JS icon on the Debug toolbar, or Tools -> Launch JsDbg.

  4. The JsDbg server will launch and prompt you to select a browser. If the debugger is attached to one browser, it is recommended that you choose a different browser for JsDbg.

JsDbg for GDB

Setup (.deb package)

If using Debian or Ubuntu, you can install JsDbg as a .deb package:

  1. Install the .NET Core Runtime using the instructions from here.

  2. Download jsdbg-gdb.deb.

  3. Run apt install ./jsdbg-gdb.deb.

Setup (.tar.bz2)

For other distributions, you can download a precompiled .tar.bz2. You do not need to install the .NET Core Runtime for this version.

  1. Download jsdbg-gdb.tar.bz2.

  2. Extract the file somewhere, e.g. in your home directory: cd ~ && tar xjf ~/Downloads/jsdbg-gdb.tar.bz2

  3. Add the following snippet to your ~/.gdbinit file:

python
import sys
sys.path.insert(0, "<path where you extracted the .tar.bz2>/jsdbg-gdb")
import JsDbg
end

Updating

There is currently no autoupdate on the GDB version of JsDbg, so you have to download and install a new version manually. Just follow the installation instructions again (except for the .gdbinit part).

Last update of the GDB packages: Aug 12th, 2019.

Usage

  1. Run GDB for your program as usual.

  2. Type jsdbg at the GDB prompt to launch the server and open a browser window.

Using JsDbg extensions

There are many different ways browser developers can incorporate JsDbg extensions into their debugging workflow. See JsDbg features for details about popular features in JsDbg.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

See Contributing to JsDbg for more details about contributing to this project.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

More Repositories

1

MSEdge

Microsoft Edge
2,817
star
2

MSEdgeExplainers

Home for explainer documents originated by the Microsoft Edge team
HTML
1,281
star
3

magic-mirror-demo

A โšกMagic Mirrorโšก powered by a UWP Hosted Web App ๐Ÿš€
JavaScript
1,232
star
4

static-code-scan

Run this quick static code scan on any URL to check for out-of-date libraries, layout issues and accessibility.
JavaScript
1,047
star
5

WebView2Samples

Microsoft Edge WebView2 samples
C++
834
star
6

JSBrowser

๐ŸŒฒ A web browser built with JavaScript as a Windows app
JavaScript
796
star
7

WebGL

Microsoft Edge WebGL Implementation
C++
716
star
8

Status

This repository tracks the roadmap for the Microsoft Edge web platform. This data is usedย onย https://status.microsoftedge.com/ toย provideย implementationย status and forward-looking plans forย web standards in Edge and other browsers.
JavaScript
535
star
9

Demos-old

Open source and interoperable demos for Microsoft Edge Dev site
JavaScript
437
star
10

WebView2Feedback

Feedback and discussions about Microsoft Edge WebView2
430
star
11

WebView2Browser

A web browser built with the Microsoft Edge WebView2 control.
JavaScript
399
star
12

MicrosoftEdge-Documentation

Microsoft Edge documentation
240
star
13

Demos

Web pages and apps used to demo various DevTools, PWA, WebView, Extensions, and Web Platform features of Microsoft Edge
JavaScript
195
star
14

DevTools

Feedback and discussions about Microsoft Edge Developer Tools
HTML
152
star
15

Sudoku

In this demo we take the well-known game of Sudoku, and demonstrate how developers can use HTML5 and JavaScript to create an efficient algorithm to solve these puzzles. The algorithms draw heavily on the Chakra engineโ€™s support for ECMAScript 5 standard array operations to rapidly solve many Sudoku games. You can also manually solve Sudoku puzzles.
HTML
148
star
16

MicrosoftEdge-Extensions-Demos

JavaScript
135
star
17

pushnotifications-demo

Demo for cross browsers push notifications with server side code
JavaScript
120
star
18

WebView2Announcements

Subscribe to this repo to be notified of Announcements and changes in Microsoft WebView2 controls.
111
star
19

generator-appx

Yeoman generator for building websites and Windows 10 Apps
JavaScript
90
star
20

webauthnsample

JavaScript
85
star
21

dev.microsoftedge.com-vms

Scripts used to generate the free VMs available at https://dev.microsoftedge.com
PowerShell
80
star
22

edge-launcher

A simple command line exe to launch Microsoft Edge at a URL.
C++
78
star
23

BrowserEfficiencyTest

BrowserEfficiencyTest is a Selenium WebDriver based web browser test automation project.
C#
65
star
24

css-usage

This script is used within our Bing and Interop crawlers to determine the properties used on a page and generalized values that could have been used.
JavaScript
65
star
25

EdgeWebDriver

Feedback and discussions about WebDriver for Microsoft Edge
55
star
26

enterprise-mode-site-list-portal

C#
52
star
27

Gamepad-Sample

A basic sample on how to use the W3C GamePad API across browsers.
JavaScript
50
star
28

pushnotifications-demo-aspnetcore

Demo for cross-browser push notifications with ASP.NET Core server side code
C#
47
star
29

A11y

Automated testing for HTML5Accessibility.com
C#
40
star
30

hwa-cli

Command-Line Interface for converting Windows Hosted Web Apps locally and remotely
TypeScript
31
star
31

webauthn-polyfill

Polyfill that maps the Web Authentication API on top of Edge preliminary implementation.
JavaScript
30
star
32

WebAppsDocs

Windows 10 web apps and frameworks documentation
HTML
30
star
33

Elevator

Elevator is a utility that allows other programs to collect traces through Windows Performance Recorder.
C#
28
star
34

DevToolsSamples

A collection of samples from Edge Developer Tools
JavaScript
22
star
35

webpayments

Polyfill to map Apple Pay APIs to the latest spec for Web Payments.
22
star
36

APICatalogData

This project contains the data for https://aka.ms/apicatalog, a tool to visualize and analyze the API overlap between standards specifications and support across browsers.
16
star
37

edgevr

Edge
HTML
15
star
38

appx-starter

JavaScript
15
star
39

fps-emitter

Measure the FPS of a page and emit it whenever it updates. Designed for the browser.
JavaScript
15
star
40

videotest

Video streaming battery rundown test methodology
CSS
14
star
41

pan-tool

A tool that injects touch input on the screen. It sends pointerdown, pointerupdate and pointerup to simulate pan, scrolling and fling gestures.
C++
14
star
42

wptest

JavaScript
14
star
43

serviceworker-demo

Service Worker demos
JavaScript
13
star
44

WebOnPi

Home application that comes pre-loaded on the #WebOnPi project
C++
13
star
45

hwa-server

Server for deploying HWAs in conjunction with the HWA-CLI tool.
TypeScript
12
star
46

hwa

PowerShell
12
star
47

hwa-starter

Everything you need to get started building a Windows Universal Hosted Web App.
HTML
12
star
48

edge-launch

Launcher for Microsoft Edge
JavaScript
12
star
49

CloudAppX

Cloudy with a chance of AppX
JavaScript
11
star
50

noin

Takes inline scripts and puts them into separate files
JavaScript
11
star
51

DevToolsDeviceList

Repo that contains the list of devices displayed in the emulation tool of the developer tools in Edge.
10
star
52

MicrosoftWebDriver-chocolatey

Microsoft WebDriver chocolatey package so installation is easier
PowerShell
9
star
53

SurfacePresenter

ISurfacePresenter API with D3D9 and D3D10/11, and contrasts with GDI
C++
8
star
54

css-usage-for-crawlers

This is where we will store our crawler specific code.
JavaScript
8
star
55

Sprache

A NuGet package for managing and using the Accept-Language header in C#
C#
7
star
56

generator-lasagnajs

Generator for the LasagnaJS architecture
JavaScript
6
star
57

A11yDevTool

This repo contains a mapping of UIA properties to ARIA properties that is used by the F12 developer tools in Edge.
6
star
58

CloudAppX-cli

JavaScript
6
star
59

timing-allow-origin-test

Demo of Timing-Allow-Origin with multiple origins
JavaScript
5
star
60

.github

Default Community Health Files for the Microsoft Edge organization on GitHub
4
star
61

microsoftedge.github.io

3
star
62

edge-devtools-crash-analyzer-support

Enables un-minification of call stacks in the Microsoft Edge DevTools Crash Analyzer tool
TypeScript
3
star
63

action-issue-to-workitem

GitHub Action that creates a Azure DevOps work item when an Issue is created
JavaScript
2
star
64

TopDeveloperNeeds

Web platform top developer needs dashboard
HTML
1
star