Managing the Symbols for Debugging in Software

Printing QR Code in Software Managing the Symbols for Debugging
Managing the Symbols for Debugging
QR-Code Maker In Visual C#.NET
Using Barcode creation for VS .NET Control to generate, create QR image in .NET framework applications.
| | |
QR Code 2d Barcode Maker In .NET Framework
Using Barcode creation for ASP.NET Control to generate, create QR Code JIS X 0510 image in ASP.NET applications.
\--retail \--exe 03samplepdb
Generating QR-Code In Visual Studio .NET
Using Barcode creator for .NET Control to generate, create QR Code ISO/IEC18004 image in .NET applications.
4 MANAGING SYMBOL AND SOURCE FILES
Painting QR Code In Visual Basic .NET
Using Barcode creator for .NET framework Control to generate, create QR image in .NET framework applications.
During the bin-placing process, the content of the debug directory stored in the executable headers is adjusted, and the original symbol file location is removed The debug directory can be visualized by the linkexe command, as shown in 2 Listing 44 shows the content of the debug directories before the bin place operation, and Listing 45 shows it after the operation Listing 44
Decode EAN / UCC - 13 In .NET
Using Barcode scanner for .NET Control to read, scan read, scan image in .NET applications.
C:\AWD>link -dump -headers c:\AWD\chapter3\objchk_wxp_x86\i386\03sampleexe Microsoft (R) COFF/PE Dumper Version 80050727220 Copyright (C) Microsoft Corporation All rights reserved Dump of file c:\awd\chapter3\objchk_wxp_x86\i386\03sampleexe Debug Directories Time Type Size RVA Pointer ---- -----------45A417D2 cv 49 00001810 C10 Format: RSDS, {B10B7ACC-81C5-4533AFEA-5AF20D9B7A09}, 1, c:\awd\chapter3\objchk_wxp_x86\i386\03samplepdb
Encode Code 39 In Java
Using Barcode printer for Java Control to generate, create Code 39 image in Java applications.
Listing 45
Making Bar Code In .NET
Using Barcode encoder for Visual Studio .NET Control to generate, create barcode image in .NET framework applications.
C:\AWD>link -dump -headers c:\AWDBIN\WinXPx86chk\03sampleexe Microsoft (R) COFF/PE Dumper Version 80050727220 Copyright (C) Microsoft Corporation All rights reserved Dump of file c:\AWDBIN\WinXPx86chk\03sampleexe Debug Directories Time Type Size RVA ---- --------45A417D2 cv 25 00001810 AFEA-5AF20D9B7A09}, 1, 03samplepdb Pointer ---C10
Code128 Drawer In Visual C#.NET
Using Barcode generator for VS .NET Control to generate, create Code 128 Code Set C image in VS .NET applications.
Format: RSDS, {B10B7ACC-81C5-4533-
Encode EAN13 In Visual Studio .NET
Using Barcode generator for ASP.NET Control to generate, create EAN-13 Supplement 5 image in ASP.NET applications.
4
Generate Barcode In VS .NET
Using Barcode maker for Visual Studio .NET Control to generate, create bar code image in .NET applications.
Managing Symbol and Source Files
DataMatrix Creator In Visual C#.NET
Using Barcode creator for .NET framework Control to generate, create Data Matrix image in VS .NET applications.
Storing Symbols in the Symbol Store
GTIN - 13 Printer In .NET
Using Barcode creation for .NET framework Control to generate, create EAN-13 image in VS .NET applications.
After processing each binary file using binplaceexe, the public symbol folder contains a tree with all the public symbol files, and the private symbol folder contains a tree with all the private symbol files Although it looks feasible to store each version of such a tree in a different location and refer to its files when debugging any module created by that build version, the process is tedious and inefficient A lot of bookkeeping must be done to ensure that no symbol is ever lost Any group doing daily builds on multiple platforms finds this process very laborious and will try to automate it Fortunately, the whole process of organizing the symbol files and discovering them when needed is already automated by a set of tools and technologies called symbol server This section describes how to organize the symbols to create the symbol server information Debugging Tools for Windows provides a symstoreexe tool, which scans a folder, collects all executable modules with their associated symbols, and organizes them in a structure recognized by the symbol server client running in the debugger The symbol files are organized based on their names and the GUID stored after the RSDS string shown in Listing 45 The binary files are indexed based on their name and the compilation time stamp Because there are two categories of symbols, the tool can be used to generate two symbol stores one having public and one having private symbol files The tool is very rich in options, all well described in the Windows debugger help In this section, we invoke symstoreexe with the following parameters:
Printing Barcode In VB.NET
Using Barcode generation for .NET Control to generate, create bar code image in .NET applications.
/f /s /r /z
Print Code 128C In VB.NET
Using Barcode drawer for Visual Studio .NET Control to generate, create Code 128B image in .NET framework applications.
indicates the binary folder used as an argument to binplaceexe indicates the symbol store location tells symstoreexe to recursively scan all files in the folder indicates what types of symbols to extract: pri means private symbols and pub is for public symbols
ECC200 Generation In VB.NET
Using Barcode generation for VS .NET Control to generate, create Data Matrix 2d barcode image in VS .NET applications.
The result of running the command twice, once for public and once for private folder, is shown in Listing 46 The command displays the statistics about the operation that must be analyzed for error The files ignored from Listing 46 are the symbols not matching the required type: a public symbol file when only private symbols files were requested and vice versa Listing 46 Creating public symbol store
EAN-13 Creator In Java
Using Barcode generator for Java Control to generate, create GTIN - 13 image in Java applications.
C:\AWD>symstoreexe add /F C:\AWDBIN\WinXPx86chk /S C:\AWDBIN\symstorepub /t book /r /z pub Finding ID 0000000001
UPC Symbol Creator In .NET
Using Barcode drawer for ASP.NET Control to generate, create UCC - 12 image in ASP.NET applications.
Managing the Symbols for Debugging
Drawing ECC200 In VS .NET
Using Barcode encoder for .NET framework Control to generate, create DataMatrix image in .NET applications.
SYMSTORE: Number of files stored = 2 SYMSTORE: Number of errors = 0 SYMSTORE: Number of files ignored = 1
GS1 - 12 Drawer In Visual Studio .NET
Using Barcode creator for Visual Studio .NET Control to generate, create UPC A image in VS .NET applications.
4 MANAGING SYMBOL AND SOURCE FILES
USS-128 Creation In Java
Using Barcode generator for Java Control to generate, create UCC - 12 image in Java applications.
Creating private symbol store
C:\AWD>symstoreexe add /F C:\AWDBIN\WinXPx86chk /S C:\AWDBIN\symstorepri /t book /r /z pri Finding ID 0000000001 SYMSTORE: Number of files stored = 2 SYMSTORE: Number of errors = 0 SYMSTORE: Number of files ignored = 1
As a result of executing these commands, two very simple symbol stores are created on the local file system Even with just one file version stored in the symbol server, when you set it, the debugger automatically picks the correct symbol file After rebuilding the project several times, it is easy to understand why the automatic symbol management is so simple compared to the manual bookkeeping process Instead of keeping all files separated by using some manually determined keys, everything is done by the tools The process is repeated each time we build the product once for each processor architecture or compilation settings All symbol files are stored in the same symbol server The tree structure for one of the stores can be examined in Listing 47 Listing 47
C:\AWD>tree c:\AWDBIN\symstorepri /F/A Folder PATH listing Volume serial number is B817-38E9 C:\AWDBIN\SYMSTOREPRI +--pingmetxt | | +--000Admin | 0000000001 | 0000000002 | 0000000003 | historytxt | lastidtxt | servertxt | | \--03sampleexe | \--45A417D214000 | \--03sampleexe | \--refsptr
(continues)