Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between retail symbols and checked symbols?

Tags:

symbols

  1. Windows XP with Service Pack 3 x86 retail symbols, all languages (File size: 209 MB - Most customers want this package.)
  2. Windows XP with Service Pack 3 x86 checked symbols, all languages (File size: 202 MB)

Quoted from here.

What's the difference between retail symbols and checked symbols?

like image 327
gdb Avatar asked Apr 25 '11 06:04

gdb


People also ask

What are DLL symbols?

dll files also creates a number of additional files known as symbol files. Symbol files hold a variety of data which are not actually needed when running the binaries, but which could be very useful in the debugging process. Typically, symbol files might contain: Global variables.

What are file symbols?

Symbol files are created when images are compiled and are used for debugging an image. They allow someone with the correct tools to view code as the software is running. In addition, when an exception occurs the symbol files allow the line number of the issue to be determined and added to the stack trace.

What are symbol files in Windows?

Symbol files make it easier to debug your code. The easiest way to get Windows symbols is to use the Microsoft public symbol server. The symbol server makes symbols available to your debugging tools as needed. After a symbol file is downloaded from the symbol server it is cached on the local computer for quick access.


3 Answers

If you are an IT or Computer Science student in college (or if you happen to have access to MSDN's e-Academy software), you will probably have access to the special debug/checked builds of Windows Vista/7. Some professionals in the software development and engineering industries may have installations of the special debug builds as well. Otherwise, whether you come across Home or Professional editions--even Enterprise and Business editions--it will most likely be the retail version. All of those versions will require the retail version of the debugging symbols. However, if you have a debug/checked build of Windows installed, you will need the checked debug symbols.

As Greg has explained, the debugging symbols are basically an address. As far as I understand, they're basically a proper name for a function or item in memory, so when a user is debugging a process or viewing a callstack, he or she will be able to see usable information instead of address offsets.

Greg answered this already as well, but I'll try to elaborate. The retail and debug builds of Windows need different versions of symbols because the operating system files are compiled differently to include more useful debugging information. This makes the addresses for the symbols move ever so slightly, so a different package is required to correctly identify everything in memory.

The one thing I'm confused by is why the checked symbol package is smaller. I would have figured it would be bigger. A guru might know the reason for that. Speaking of which, I'd like to make it clear that I'm no debugger. I'm just fascinated with the science behind it. Nonetheless, I hope this helped you out.

Good luck gdb.

like image 21
Ben Avatar answered Sep 30 '22 19:09

Ben


In general, the difference between "retail" and "checked" is similar to a "release" versus "debug" build. Microsoft provides two different kernels, one compiled for regular use and one with extra debug information. The two different builds also have two different symbol tables.

like image 196
Greg Hewgill Avatar answered Sep 30 '22 19:09

Greg Hewgill


For practical purposes, desription of both packages was given in microsoft article https://developer.microsoft.com/en-us/windows/hardware/download-symbols . For been precise,

"Almost all customers require the symbols for the retail version. If you are debugging a special version of Windows with extra debugging information, then you should download the symbols for the checked version."

In other words, most likely you need retail version.

like image 1
mchist Avatar answered Sep 30 '22 19:09

mchist