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#
  4. Compiling out debugging statements - any easy way?

Compiling out debugging statements - any easy way?

Scheduled Pinned Locked Moved C#
debuggingquestionannouncement
3 Posts 3 Posters 0 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.
  • K Offline
    K Offline
    K L K
    wrote on last edited by
    #1

    I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?

    C R 2 Replies Last reply
    0
    • K K L K

      I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?

      C Offline
      C Offline
      Christian Graus
      wrote on last edited by
      #2

      Those are your two options, sorry :-)

      Christian Graus Please read this if you don't understand the answer I've given you "also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )

      1 Reply Last reply
      0
      • K K L K

        I have a lot of debugging statements in my code, and I want to compile most of them away in a release build. Is there any easier way to do this besides surrounding each one with #if DEBUG...? An alternative solution would be to create a single method called Debug() which has the preprocessor statement inside of it. But this would involve refactoring a lot of code and would still involve a method invocation (albeit an empty one). Any ideas?

        R Offline
        R Offline
        Roger Alsing 0
        wrote on last edited by
        #3

        >>would still involve a method invocation (albeit an empty one). You can mark the refactored code with the "ConditionalAttribute" eg: [Conditional("Debug")] public void DoStuff() { } This lets the compiler know that it should only _emit calls to that method if we are in debug mode_ So the method will still be present in release mode, but no calls to it will be present in the IL code. (And if your debug statements are output stuff only. then just use "Debug.WriteLine(text)" , those will also be removed in release mode)

        Blog: http://www.rogeralsing.com Projects: http://www.puzzleframework.com

        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