Chrome android releases symbols

771 views
Skip to first unread message

S

unread,
Jun 5, 2017, 11:10:59 AM6/5/17
to Chromium-dev
Hi,

I'm trying to debug a crash of an official chrome release for android. Obviously, as this is a release build, there are no symbols. My question is: are external symbols (or an unstripped libchrome.cr.so) available for such releases anywhere? I saw from https://www.chromium.org/developers/how-tos/debugging-on-windows that there appear to be symbols available for windows builds.

Thanks
s1341

Primiano Tucci

unread,
Jun 5, 2017, 11:27:55 AM6/5/17
to ma...@shmarya.net, Chromium-dev
Unfortunately I don't think there are any publicly available debugging symbols for Android.
The suggested pattern is to look at the uploaded crash id in chrome://crashes and file a bug with that. Somebody will look into the bug and very likely post the stack trace.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/2675e8b2-71fa-437b-b32a-33300cba3c5b%40chromium.org.

S

unread,
Jun 5, 2017, 11:29:25 AM6/5/17
to Chromium-dev, ma...@shmarya.net
Aren't public symbols something that would be useful for the community to have? I assume that you have them internally in Google. Why not share them?

Primiano Tucci

unread,
Jun 5, 2017, 12:30:58 PM6/5/17
to ma...@shmarya.net, Chromium-dev
> Aren't public symbols something that would be useful for the community to have? 
> I assume that you have them internally in Google. Why not share them?

Not fully sure honestly. Trying to make an educated guess: on Windows 99% of the code is in chrome dlls (for which there are public symbols) while the internal resources, api keys etc, are in the exe (for which IIRC we don't provide any symbol). Android/Linux don't have the same split (everything is in the exec) which would make dealing with the internal bits a lit trickier.

I think it might be the usual case of "nobody considered this use case interesting enough to spend time on it".
At the end one can always rebuild chrome and get the symbols locally.
But I agree with you that just having symbols would be a nice to have.

Not sure if there is any other reason beyond this.

Shmarya

unread,
Jun 5, 2017, 12:33:21 PM6/5/17
to Primiano Tucci, Chromium-dev
It would be super useful in scenarios where local builds fail to reproduce issues... which I've seen once or twice.
--
Shmarya

S

unread,
Jun 7, 2017, 3:34:09 AM6/7/17
to Chromium-dev, prim...@chromium.org
Anyone else care to comment or is this thread dead?


On Monday, June 5, 2017 at 7:33:21 PM UTC+3, Shmarya wrote:
It would be super useful in scenarios where local builds fail to reproduce issues... which I've seen once or twice.
On 5 June 2017 at 19:29, Primiano Tucci <> wrote:
> Aren't public symbols something that would be useful for the community to have? 
> I assume that you have them internally in Google. Why not share them?

Not fully sure honestly. Trying to make an educated guess: on Windows 99% of the code is in chrome dlls (for which there are public symbols) while the internal resources, api keys etc, are in the exe (for which IIRC we don't provide any symbol). Android/Linux don't have the same split (everything is in the exec) which would make dealing with the internal bits a lit trickier.

I think it might be the usual case of "nobody considered this use case interesting enough to spend time on it".
At the end one can always rebuild chrome and get the symbols locally.
But I agree with you that just having symbols would be a nice to have.

Not sure if there is any other reason beyond this.

On Mon, Jun 5, 2017 at 4:29 PM S <> wrote:
Aren't public symbols something that would be useful for the community to have? I assume that you have them internally in Google. Why not share them?


On Monday, June 5, 2017 at 6:27:55 PM UTC+3, Primiano Tucci wrote:
Unfortunately I don't think there are any publicly available debugging symbols for Android.
The suggested pattern is to look at the uploaded crash id in chrome://crashes and file a bug with that. Somebody will look into the bug and very likely post the stack trace.

On Mon, Jun 5, 2017 at 4:11 PM S <> wrote:
Hi,

I'm trying to debug a crash of an official chrome release for android. Obviously, as this is a release build, there are no symbols. My question is: are external symbols (or an unstripped libchrome.cr.so) available for such releases anywhere? I saw from https://www.chromium.org/developers/how-tos/debugging-on-windows that there appear to be symbols available for windows builds.

Thanks
s1341

--
--
Chromium Developers mailing list: chromi...@chromium.org

View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/2675e8b2-71fa-437b-b32a-33300cba3c5b%40chromium.org.

--
--
Chromium Developers mailing list:
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.



--
Shmarya

Bruce

unread,
Jun 12, 2017, 2:17:09 PM6/12/17
to Chromium-dev, prim...@chromium.org
> while the internal resources, api keys etc, are in the exe (for which IIRC we don't provide any symbol)

Actually we do publish symbols for chrome.exe on Windows. We publish full source-indexed private symbols for all of the Chrome Windows binaries that we build. While it's usually not necessary (because debuggers and profilers will download symbols on demand) I sometimes use this handy batch file to retrieve all canary symbols, for analysis purposes:

"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.dll"
"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.exe"

The batch file merely depends on _NT_SYMBOL_PATH being set, to something like this:

_NT_SYMBOL_PATH=SRV*C:\symbols*https://msdl.microsoft.com/download/symbols;SRV*C:\symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com

Here's the relevant output:

C:\src\depot_tools\win_toolchain\vs_files\3915730f76bd9c6155aed871b944b0a25c18f15e>"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.exe"
SYMCHK: C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\chrome.exe PASSED  - PDB: C:\symbols\chrome.exe.pdb\16380CD5491C46D39A0491D8F2E2ADBB1\chrome.exe.pdb DBG: <N/A>
SYMCHK: C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\61.0.3128.0\Installer\setup.exe PASSED  - PDB: C:\symbols\setup.exe.pdb\7ED97815870840669A7D2D6ED99A27B41\setup.exe.pdb DBG: <N/A>

So, I highly doubt that there is any actual reason why the Linux symbols aren't shared, other than different expectations. On Windows it is expected that symbol servers should be available for projects such as Chrome. And, because they work so well (lots of tools download them automatically, on-demand) there is significant value to having them. On Linux, on the other hand, there is very little expectation that symbols will be available, and no automated way of having them retrieved on demand, so nobody has bothered to do the uploading of Chrome Linux symbols.

It would be quite possible to do it for Linux, presumably using the standard %02x/%030x build-id format. It would require an extra series of scripts to go grab the symbols (and binaries, for when analyzing core dumps) based on build IDs in the installed binaries or in core dumps, but it is entirely feasible. I don't work on Chrome on Linux enough to be motivated to take on the task.

If you want Linux symbols then you should probably file a bug (or find an existing one) and explain the use-case. Volunteering to write the helper scripts to grab the symbols might help, but no guarantees.

S R

unread,
Jun 12, 2017, 2:41:28 PM6/12/17
to bruce...@chromium.org, Chromium-dev, prim...@chromium.org


On 12 Jun 2017, at 21:17, Bruce <bruce...@chromium.org> wrote:

> while the internal resources, api keys etc, are in the exe (for which IIRC we don't provide any symbol)

Actually we do publish symbols for chrome.exe on Windows. We publish full source-indexed private symbols for all of the Chrome Windows binaries that we build. While it's usually not necessary (because debuggers and profilers will download symbols on demand) I sometimes use this handy batch file to retrieve all canary symbols, for analysis purposes:

"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.dll"
"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.exe"

The batch file merely depends on _NT_SYMBOL_PATH being set, to something like this:

_NT_SYMBOL_PATH=SRV*C:\symbols*https://msdl.microsoft.com/download/symbols;SRV*C:\symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com

Here's the relevant output:

C:\src\depot_tools\win_toolchain\vs_files\3915730f76bd9c6155aed871b944b0a25c18f15e>"c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symchk.exe" /os /ob /op /r "C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\*.exe"
SYMCHK: C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\chrome.exe PASSED  - PDB: C:\symbols\chrome.exe.pdb\16380CD5491C46D39A0491D8F2E2ADBB1\chrome.exe.pdb DBG: <N/A>
SYMCHK: C:\Users\brucedawson\AppData\Local\Google\Chrome SxS\Application\61.0.3128.0\Installer\setup.exe PASSED  - PDB: C:\symbols\setup.exe.pdb\7ED97815870840669A7D2D6ED99A27B41\setup.exe.pdb DBG: <N/A>

So, I highly doubt that there is any actual reason why the Linux symbols aren't shared, other than different expectations. On Windows it is expected that symbol servers should be available for projects such as Chrome. And, because they work so well (lots of tools download them automatically, on-demand) there is significant value to having them. On Linux, on the other hand, there is very little expectation that symbols will be available, and no automated way of having them retrieved on demand, so nobody has bothered to do the uploading of Chrome Linux symbols.

It would be quite possible to do it for Linux, presumably using the standard %02x/%030x build-id format. It would require an extra series of scripts to go grab the symbols (and binaries, for when analyzing core dumps) based on build IDs in the installed binaries or in core dumps, but it is entirely feasible. I don't work on Chrome on Linux enough to be motivated to take on the task.

If you want Linux symbols then you should probably file a bug (or find an existing one) and explain the use-case. Volunteering to write the helper scripts to grab the symbols might help, but no guarantees.

I'd be happy to help with scripting but not being a google to don't have access to the symbols to know where to grab them from. I can try opening a crbug but I've found that without a champion these things tend to stagnate. You willing to champion?


You received this message because you are subscribed to a topic in the Google Groups "Chromium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/chromium-dev/ciAVW1v1ZJs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/868661ff-0c81-4006-ac9f-da4f9ff7bbe4%40chromium.org.

Bruce Dawson

unread,
Jun 12, 2017, 2:45:01 PM6/12/17
to S R, Chromium-dev, Primiano Tucci
It may well stagnate, and I'm too focused on Windows work to be able to champion this.

And, it may be that the intersection of [Linux developers][who care about symbols][who use Chrome rather than Chromium][who would discover and use this feature] is so close to zero that the value is not sufficient. Sorry :-(

To unsubscribe from this group and all its topics, send an email to chromium-dev+unsubscribe@chromium.org.

S R

unread,
Jun 12, 2017, 3:03:01 PM6/12/17
to Bruce Dawson, Chromium-dev, Primiano Tucci
I'm actually more interested in android symbols if that helps. 

Torne (Richard Coles)

unread,
Jun 12, 2017, 4:12:59 PM6/12/17
to ma...@shmarya.net, Bruce Dawson, Chromium-dev, Primiano Tucci
I've spoken to our release manager about putting Android symbols out; there's a few things we want to check first about the binary and it's on my todo list, so hopefully we'll be able to share symbols at some point.

To unsubscribe from this group and all its topics, send an email to chromium-dev...@chromium.org.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.

S R

unread,
Jun 13, 2017, 4:46:00 AM6/13/17
to Torne (Richard Coles), Bruce Dawson, Chromium-dev, Primiano Tucci


On 12 Jun 2017, at 23:11, Torne (Richard Coles) <to...@chromium.org> wrote:

I've spoken to our release manager about putting Android symbols out; there's a few things we want to check first about the binary and it's on my todo list, so hopefully we'll be able to share symbols at some point.

Awesome! If there is anything I can do to help out with this please let me know. 
Reply all
Reply to author
Forward
0 new messages