Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Release Build, Symbols, Debugging Unreproducable Crashes.

Release Build, Symbols, Debugging Unreproducable Crashes.

Scheduled Pinned Locked Moved C / C++ / MFC
questionannouncementcssdebuggingsales
7 Posts 3 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Mike Doner
    wrote on last edited by
    #1

    Hi all, I've done quite a bit of reading over the last few days with regards to analyzing application crash dumps etc. I've got a customer who occasionally gets an application crash that we're unable to reproduce here. The code looks fine, we have no idea whats going on. From what I'm reading, I can have the customer send me the crash dump fro Dr. Watson, then open it up to see where the FAULT is. Understood, no problems so far. As a test, I compiled the code in release, included symbols, forced a crash and was able to see where the fault was. My question more or less revolves around the SYMBOLS which tell you where the functions are located in the code, (PDB files). When you release a new version of your software, do you always BUILD these symbol files as part of the release configuration and tuck them away until you need them?? Our current process just bulids a simple RELEASE configuration with no map exports & no symbol building. Questions: 1) Do you build symbols/maps with your software during the RELEASE compile? 2) Is there any disadvantage to ALWAYS creating these files during the RELEASE compile? Is anything else included in the .EXE/DLLs which may assist in the wrong people trying to debug your application? 3) I'm assuming the version of the .exe and the .pdb have to be from the same compile, correct? Bottom line, what should I be doing as part of my RELEASE configuration to take full advantage of symbols/crash dumps etc. Sorry, I'm a little green here with this stuff... anything you can contribute would be greatly appreciated. Mke.

    S 1 Reply Last reply
    0
    • M Mike Doner

      Hi all, I've done quite a bit of reading over the last few days with regards to analyzing application crash dumps etc. I've got a customer who occasionally gets an application crash that we're unable to reproduce here. The code looks fine, we have no idea whats going on. From what I'm reading, I can have the customer send me the crash dump fro Dr. Watson, then open it up to see where the FAULT is. Understood, no problems so far. As a test, I compiled the code in release, included symbols, forced a crash and was able to see where the fault was. My question more or less revolves around the SYMBOLS which tell you where the functions are located in the code, (PDB files). When you release a new version of your software, do you always BUILD these symbol files as part of the release configuration and tuck them away until you need them?? Our current process just bulids a simple RELEASE configuration with no map exports & no symbol building. Questions: 1) Do you build symbols/maps with your software during the RELEASE compile? 2) Is there any disadvantage to ALWAYS creating these files during the RELEASE compile? Is anything else included in the .EXE/DLLs which may assist in the wrong people trying to debug your application? 3) I'm assuming the version of the .exe and the .pdb have to be from the same compile, correct? Bottom line, what should I be doing as part of my RELEASE configuration to take full advantage of symbols/crash dumps etc. Sorry, I'm a little green here with this stuff... anything you can contribute would be greatly appreciated. Mke.

      S Offline
      S Offline
      Stephen Hewitt
      wrote on last edited by
      #2

      Mike Doner wrote:

      When you release a new version of your software, do you always BUILD these symbol files as part of the release configuration and tuck them away until you need them??

      Yes, I always keep the symbol files for release builds. If you've got no symbol files releasing is not an option. As to where to put them the best option is to use Microsoft's Symbol Server[^]. Note that the default settings for release builds is not to generate debug information: the first thing I do when starting a new project is change this.

      Mike Doner wrote:

      Is there any disadvantage to ALWAYS creating these files during the RELEASE compile? Is anything else included in the .EXE/DLLs which may assist in the wrong people trying to debug your application?

      Not if you use PDB files (as then the symbols are stored separately). The only thing that's in the EXE is the full path to the PDB file on the build system.

      Steve

      S 1 Reply Last reply
      0
      • S Stephen Hewitt

        Mike Doner wrote:

        When you release a new version of your software, do you always BUILD these symbol files as part of the release configuration and tuck them away until you need them??

        Yes, I always keep the symbol files for release builds. If you've got no symbol files releasing is not an option. As to where to put them the best option is to use Microsoft's Symbol Server[^]. Note that the default settings for release builds is not to generate debug information: the first thing I do when starting a new project is change this.

        Mike Doner wrote:

        Is there any disadvantage to ALWAYS creating these files during the RELEASE compile? Is anything else included in the .EXE/DLLs which may assist in the wrong people trying to debug your application?

        Not if you use PDB files (as then the symbols are stored separately). The only thing that's in the EXE is the full path to the PDB file on the build system.

        Steve

        S Offline
        S Offline
        Saurabh Garg
        wrote on last edited by
        #3

        Stephen Hewitt wrote:

        As to where to put them the best option is to use Microsoft's Symbol Server[^].

        You mean I an upload my symbols to MS symbol server. Any pointer? -Saurabh

        S 2 Replies Last reply
        0
        • S Saurabh Garg

          Stephen Hewitt wrote:

          As to where to put them the best option is to use Microsoft's Symbol Server[^].

          You mean I an upload my symbols to MS symbol server. Any pointer? -Saurabh

          S Offline
          S Offline
          Stephen Hewitt
          wrote on last edited by
          #4

          The symbol server comes with WinDBG. Google for Debugging Tools For Windows[^] and you shouldn't have any trouble finding it.

          Steve

          1 Reply Last reply
          0
          • S Saurabh Garg

            Stephen Hewitt wrote:

            As to where to put them the best option is to use Microsoft's Symbol Server[^].

            You mean I an upload my symbols to MS symbol server. Any pointer? -Saurabh

            S Offline
            S Offline
            Stephen Hewitt
            wrote on last edited by
            #5

            Saurabh.Garg wrote:

            You mean I an upload my symbols to MS symbol server. Any pointer?

            No, you don't upload them. The Symbol Server is a tool that comes with WinDBG for managing symbols and simplifying debugging by automatically locating the correct symbol files.

            Steve

            S 1 Reply Last reply
            0
            • S Stephen Hewitt

              Saurabh.Garg wrote:

              You mean I an upload my symbols to MS symbol server. Any pointer?

              No, you don't upload them. The Symbol Server is a tool that comes with WinDBG for managing symbols and simplifying debugging by automatically locating the correct symbol files.

              Steve

              S Offline
              S Offline
              Saurabh Garg
              wrote on last edited by
              #6

              I am aware of symbol server and have been using it for long time. The way you said in your original post it seems that we can upload symbols to symbol server as well. -Saurabh

              S 1 Reply Last reply
              0
              • S Saurabh Garg

                I am aware of symbol server and have been using it for long time. The way you said in your original post it seems that we can upload symbols to symbol server as well. -Saurabh

                S Offline
                S Offline
                Stephen Hewitt
                wrote on last edited by
                #7

                You put your symbols into a centralised symbol server when you do a release.

                Steve

                1 Reply Last reply
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • World
                • Users
                • Groups