Opened 6 years ago

Closed 6 years ago

#9487 closed enhancement (fixed)

Create DebugInfo files for TBB builds on Linux

Reported by: mikeperry Owned by: mikeperry
Priority: High Milestone:
Component: Applications/Tor bundles/installation Version:
Severity: Keywords: tbb-3.0, MikePerry201309
Cc: g.koppen@… Actual Points:
Parent ID: Points: 4
Reviewer: Sponsor:

Child Tickets

Change History (4)

comment:1 Changed 6 years ago by Lee Fisher

For Windows, you already have anti-debugging code enabled in your released binaries. Providing symbols is not useful for live debugging, unless you disable your anti-debugging code feature, and will only be useful for postmortem debugging, when this code is unable to prevent debugging.

Windows system debuggers need PDB style symbols. AFAIK, GCC nor CLang don't generate this style of symbols, though I'd be happy to be proven wrong. The GCC symbols are only usable by GDB, and are not called PDBs. MSC (MSVC, aka Visual Studio's VC++) generates PDB style symbols. But Tor does not ship a MSVC-generated Tor binary, and of course you can't mix this with a GCC-generated binary. All the other libraries (OpenSSL, Zlib, LibEvent) works with MSVC or GCC, so you can get valid PDBs for them.

If you ever release a MSC-generated tor.exe and tor.pdb and want Tor to be debuggable by native Windows debuggers (instead of only GDB), you also need to decide if you want to setup a Symbol Server (and/or a Source Server), to remotely provide symbols and sources to debuggers. The Mozilla project is probably the best example of an open source project that does this (and they've written open source Symbol/Source Servers that you can use).
http://zenit.senecac.on.ca/wiki/index.php/Mozilla_Source_and_Symbol_Server
https://developer.mozilla.org/en-US/docs/Using_the_Mozilla_symbol_server

comment:2 Changed 6 years ago by gk

Cc: g.koppen@… added

comment:3 Changed 6 years ago by mikeperry

Keywords: MikePerry201309 added; MikePerry201308 removed

comment:4 Changed 6 years ago by mikeperry

Points: 4
Resolution: fixed
Status: newclosed

Ok, this is done for Linux. I am aware that we face a barrier for Windows, but we also have roughly zero Windows developers as-is, so I am less concerned about that.

Note: See TracTickets for help on using tickets.