May 25, 2021 Electron
Debugging symbols gives you better debugging sessions. T hey have function information for executable dynamic libraries and provide information to obtain a clean call stack. A Symbol server allows the debugger to automatically load the correct symbols, binary and resource files without having to force the user to download huge debug files. Server functions are similar to Microsoft's symbol server, so records are available here.
Note that because the public version of electron build is optimized, debugging is not always simple. T he debugger will not give content to all variables, and because of inline, tail calls, and other compiler optimizations, the execution path will look weird. The only solution is to build an uno-optimized local build.
Electron uses an official
symbol server
http://54.249.141.255:8086/atom-shell/symbols
. Y
ou cannot access this path directly and must add it to the symbol path of your debugging tool. I
n the following example, a local cache directory is used to avoid repeatedly getting PDBs from the server.
Use an appropriate cache directory
on your PC instead
c:\code\symbols
.
The Windbg symbol path is made up as a string that limits asterisk characters.
To use only Electron's symbol server, add the following records to your symbol path (Note:
If you'd like to use a different place to download symbols, you can use any writeable
directory on your PC instead of
c:\code\symbols
):
SRV*c:\code\symbols\*http://54.249.141.255:8086/atom-shell/symbols
Use the Windbg
menu or by
.sympath
command to set up a
_NT_SYMBOL_PATH
environment.
If you also want to get symbols from Microsoft's symbol servers, you should list them first:
SRV*c:\code\symbols\*http://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols\*http://54.249.141.255:8086/atom-shell/symbols
Enter the following command in Windbg to print out that no symbols are loaded:
> !sym noisy
> .reload /f chromiumcontent.dll