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. The Lounge
  3. How to crash VS 2010 in 20 lines of code...

How to crash VS 2010 in 20 lines of code...

Scheduled Pinned Locked Moved The Lounge
visual-studiocombeta-testinghelptutorial
28 Posts 17 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.
  • J Offline
    J Offline
    J Dunlap
    wrote on last edited by
    #1

    namespace Crash
    {
    public class Foo
    {
    public static void Method(object o)
    {

        }
    }
    
    public class Bar
    {
        public Foo Foo { get; set; }
    
        public static void Method(dynamic d)
        {
            Foo.Method(d); //This crashes VS instantly!
        }
    }
    

    }

    :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

    R D F K S 15 Replies Last reply
    0
    • J J Dunlap

      namespace Crash
      {
      public class Foo
      {
      public static void Method(object o)
      {

          }
      }
      
      public class Bar
      {
          public Foo Foo { get; set; }
      
          public static void Method(dynamic d)
          {
              Foo.Method(d); //This crashes VS instantly!
          }
      }
      

      }

      :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

      R Offline
      R Offline
      RobCroll
      wrote on last edited by
      #2

      Wow! no sooner do you paste it into the text editor and VS crashes out. Classic find

      "You get that on the big jobs."

      1 Reply Last reply
      0
      • J J Dunlap

        namespace Crash
        {
        public class Foo
        {
        public static void Method(object o)
        {

            }
        }
        
        public class Bar
        {
            public Foo Foo { get; set; }
        
            public static void Method(dynamic d)
            {
                Foo.Method(d); //This crashes VS instantly!
            }
        }
        

        }

        :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

        D Offline
        D Offline
        dan sh
        wrote on last edited by
        #3

        Brilliant! I like this error message: Internal Compiler Error (0xc0000005 at address 553112BE): likely **culprit** is 'BIND'. Suggested solution is to simplify the code. :doh:

        "The worst code you'll come across is code you wrote last year.", wizardzz[^]

        J 1 Reply Last reply
        0
        • J J Dunlap

          namespace Crash
          {
          public class Foo
          {
          public static void Method(object o)
          {

              }
          }
          
          public class Bar
          {
              public Foo Foo { get; set; }
          
              public static void Method(dynamic d)
              {
                  Foo.Method(d); //This crashes VS instantly!
              }
          }
          

          }

          :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

          F Offline
          F Offline
          Firo Atrum Ventus
          wrote on last edited by
          #4

          J. Dunlap wrote:

          EDIT: I submitted a bug report here[^].

          Why don't you post the workaround too?

          Oxfords English < Official CCC Players Dictionary Excuse me for my improper grammar and typos. It's because English is my primary language, not my first language. My first languages are C# and Java. VB, ASP, JS, PHP and SQL are my second language. Indonesian came as my third language. My fourth language? I'm still creating it, I'll let you know when it's done! :-D

          D J 2 Replies Last reply
          0
          • F Firo Atrum Ventus

            J. Dunlap wrote:

            EDIT: I submitted a bug report here[^].

            Why don't you post the workaround too?

            Oxfords English < Official CCC Players Dictionary Excuse me for my improper grammar and typos. It's because English is my primary language, not my first language. My first languages are C# and Java. VB, ASP, JS, PHP and SQL are my second language. Indonesian came as my third language. My fourth language? I'm still creating it, I'll let you know when it's done! :-D

            D Offline
            D Offline
            dan sh
            wrote on last edited by
            #5

            Then how we will make fun of and then eventually rant about slow responsiveness of MS guys?

            "The worst code you'll come across is code you wrote last year.", wizardzz[^]

            N 1 Reply Last reply
            0
            • F Firo Atrum Ventus

              J. Dunlap wrote:

              EDIT: I submitted a bug report here[^].

              Why don't you post the workaround too?

              Oxfords English < Official CCC Players Dictionary Excuse me for my improper grammar and typos. It's because English is my primary language, not my first language. My first languages are C# and Java. VB, ASP, JS, PHP and SQL are my second language. Indonesian came as my third language. My fourth language? I'm still creating it, I'll let you know when it's done! :-D

              J Offline
              J Offline
              J Dunlap
              wrote on last edited by
              #6

              Done.

              1 Reply Last reply
              0
              • D dan sh

                Brilliant! I like this error message: Internal Compiler Error (0xc0000005 at address 553112BE): likely **culprit** is 'BIND'. Suggested solution is to simplify the code. :doh:

                "The worst code you'll come across is code you wrote last year.", wizardzz[^]

                J Offline
                J Offline
                J Dunlap
                wrote on last edited by
                #7

                I'm pretty sure the culprit is indeed the binding logic - it doesn't know whether to bind to the property or the class, so it gets all flustered. But yeah, that code seems simple enough to be sure :laugh:

                D 1 Reply Last reply
                0
                • J J Dunlap

                  I'm pretty sure the culprit is indeed the binding logic - it doesn't know whether to bind to the property or the class, so it gets all flustered. But yeah, that code seems simple enough to be sure :laugh:

                  D Offline
                  D Offline
                  dan sh
                  wrote on last edited by
                  #8

                  I think they should enhance intellisense to pick this up and fail the build during initial syntax check (lexical analysis?).

                  "The worst code you'll come across is code you wrote last year.", wizardzz[^]

                  J 1 Reply Last reply
                  0
                  • J J Dunlap

                    namespace Crash
                    {
                    public class Foo
                    {
                    public static void Method(object o)
                    {

                        }
                    }
                    
                    public class Bar
                    {
                        public Foo Foo { get; set; }
                    
                        public static void Method(dynamic d)
                        {
                            Foo.Method(d); //This crashes VS instantly!
                        }
                    }
                    

                    }

                    :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                    K Offline
                    K Offline
                    Kanasz Robert
                    wrote on last edited by
                    #9

                    wow It worked immediately :D

                    1 Reply Last reply
                    0
                    • D dan sh

                      I think they should enhance intellisense to pick this up and fail the build during initial syntax check (lexical analysis?).

                      "The worst code you'll come across is code you wrote last year.", wizardzz[^]

                      J Offline
                      J Offline
                      J Dunlap
                      wrote on last edited by
                      #10

                      Actually it's perfectly valid code which compiles when anything other than a dynamic value is used. It's just that when you use pass in a dynamic value without casting it to a specific type first, the method call expression becomes a dynamic expression that the intellisense engine then crashes from.

                      D 1 Reply Last reply
                      0
                      • J J Dunlap

                        namespace Crash
                        {
                        public class Foo
                        {
                        public static void Method(object o)
                        {

                            }
                        }
                        
                        public class Bar
                        {
                            public Foo Foo { get; set; }
                        
                            public static void Method(dynamic d)
                            {
                                Foo.Method(d); //This crashes VS instantly!
                            }
                        }
                        

                        }

                        :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                        S Offline
                        S Offline
                        Slacker007
                        wrote on last edited by
                        #11

                        Nice find.

                        Just along for the ride. "the meat from that butcher is just the dogs danglies, absolutely amazing cuts of beef." - DaveAuld (2011)
                        "No, that is just the earthly manifestation of the Great God Retardon." - Nagy Vilmos (2011)

                        1 Reply Last reply
                        0
                        • J J Dunlap

                          Actually it's perfectly valid code which compiles when anything other than a dynamic value is used. It's just that when you use pass in a dynamic value without casting it to a specific type first, the method call expression becomes a dynamic expression that the intellisense engine then crashes from.

                          D Offline
                          D Offline
                          dan sh
                          wrote on last edited by
                          #12

                          OK. Their test cases might have missed out on these and many more conditions. Sorry, but I do not really understand concept of using dynamic. I am still with .Net 3.5 and some VB (yuck!) here and there.

                          "The worst code you'll come across is code you wrote last year.", wizardzz[^]

                          1 Reply Last reply
                          0
                          • D dan sh

                            Then how we will make fun of and then eventually rant about slow responsiveness of MS guys?

                            "The worst code you'll come across is code you wrote last year.", wizardzz[^]

                            N Offline
                            N Offline
                            NormDroid
                            wrote on last edited by
                            #13

                            cue Graus

                            Software Kinetics Wear a hard hat it's under construction
                            Metro RSS

                            1 Reply Last reply
                            0
                            • J J Dunlap

                              namespace Crash
                              {
                              public class Foo
                              {
                              public static void Method(object o)
                              {

                                  }
                              }
                              
                              public class Bar
                              {
                                  public Foo Foo { get; set; }
                              
                                  public static void Method(dynamic d)
                                  {
                                      Foo.Method(d); //This crashes VS instantly!
                                  }
                              }
                              

                              }

                              :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                              T Offline
                              T Offline
                              TheGreatAndPowerfulOz
                              wrote on last edited by
                              #14

                              Why don't you post the code into the bugreport too?

                              If your actions inspire others to dream more, learn more, do more and become more, you are a leader." - John Quincy Adams
                              You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering” - Wernher von Braun

                              J 1 Reply Last reply
                              0
                              • T TheGreatAndPowerfulOz

                                Why don't you post the code into the bugreport too?

                                If your actions inspire others to dream more, learn more, do more and become more, you are a leader." - John Quincy Adams
                                You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering” - Wernher von Braun

                                J Offline
                                J Offline
                                J Dunlap
                                wrote on last edited by
                                #15

                                It's in "Steps to reproduce" :-)

                                1 Reply Last reply
                                0
                                • J J Dunlap

                                  namespace Crash
                                  {
                                  public class Foo
                                  {
                                  public static void Method(object o)
                                  {

                                      }
                                  }
                                  
                                  public class Bar
                                  {
                                      public Foo Foo { get; set; }
                                  
                                      public static void Method(dynamic d)
                                      {
                                          Foo.Method(d); //This crashes VS instantly!
                                      }
                                  }
                                  

                                  }

                                  :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                                  S Offline
                                  S Offline
                                  samuelms
                                  wrote on last edited by
                                  #16

                                  This thread became my new google status: "How to crash VS2010[^]" Very cool find. Hard to believe even, I had to try it for myself. :D

                                  1 Reply Last reply
                                  0
                                  • J J Dunlap

                                    namespace Crash
                                    {
                                    public class Foo
                                    {
                                    public static void Method(object o)
                                    {

                                        }
                                    }
                                    
                                    public class Bar
                                    {
                                        public Foo Foo { get; set; }
                                    
                                        public static void Method(dynamic d)
                                        {
                                            Foo.Method(d); //This crashes VS instantly!
                                        }
                                    }
                                    

                                    }

                                    :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                                    F Offline
                                    F Offline
                                    Fabio Franco
                                    wrote on last edited by
                                    #17

                                    Awesome, when I pasted the entire code I, for a second, thought it would be bogus. But then the next second convinced me. I thought it would crash only when trying to use intellisense suggestions when pressing ".".

                                    "To alcohol! The cause of, and solution to, all of life's problems" - Homer Simpson

                                    1 Reply Last reply
                                    0
                                    • J J Dunlap

                                      namespace Crash
                                      {
                                      public class Foo
                                      {
                                      public static void Method(object o)
                                      {

                                          }
                                      }
                                      
                                      public class Bar
                                      {
                                          public Foo Foo { get; set; }
                                      
                                          public static void Method(dynamic d)
                                          {
                                              Foo.Method(d); //This crashes VS instantly!
                                          }
                                      }
                                      

                                      }

                                      :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                                      S Offline
                                      S Offline
                                      SeattleC
                                      wrote on last edited by
                                      #18

                                      Shoot. I don't feel like I've really used a version of visual studio until I've crashed the compiler. I specialize in crashing the C++ compiler. I got an error message from vc++ 6 once saying something like "internal error : contact a graduate student." What's up with that? And it was legal C++ too.

                                      1 Reply Last reply
                                      0
                                      • J J Dunlap

                                        namespace Crash
                                        {
                                        public class Foo
                                        {
                                        public static void Method(object o)
                                        {

                                            }
                                        }
                                        
                                        public class Bar
                                        {
                                            public Foo Foo { get; set; }
                                        
                                            public static void Method(dynamic d)
                                            {
                                                Foo.Method(d); //This crashes VS instantly!
                                            }
                                        }
                                        

                                        }

                                        :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                                        Sander RosselS Offline
                                        Sander RosselS Offline
                                        Sander Rossel
                                        wrote on last edited by
                                        #19

                                        Brilliant! :laugh: I had code that crashed VS once too. Don't know what the code was or why it crashed VS. I do know I was in slight panic because it was our entire companies main product that crashed and I couldn't start it up again (I did somehow manage to change the erronous code). Luckily I came back to my senses and simply deleted the code using notepad :laugh:

                                        It's an OO world.

                                        public class Naerling : Lazy<Person>{
                                        public void DoWork(){ throw new NotImplementedException(); }
                                        }

                                        J 1 Reply Last reply
                                        0
                                        • J J Dunlap

                                          namespace Crash
                                          {
                                          public class Foo
                                          {
                                          public static void Method(object o)
                                          {

                                              }
                                          }
                                          
                                          public class Bar
                                          {
                                              public Foo Foo { get; set; }
                                          
                                              public static void Method(dynamic d)
                                              {
                                                  Foo.Method(d); //This crashes VS instantly!
                                              }
                                          }
                                          

                                          }

                                          :sigh: Took me a bit to figure out what triggers it because when I encountered it, there was a lot of other code involved. But basically the method being called must be static and must be referenced via the class name (without a namespace). The method making the call must also be static, and the class it belongs to must have a non-static property with the same name as the class whose method is being called. The dynamic value being passed to it can come from anywhere - it doesn't have to be an argument to the calling function. The workaround is to use the namespace as well when referencing the class - e.g. Crash.Foo.Method(d). EDIT: I submitted a bug report here[^].

                                          H Offline
                                          H Offline
                                          HenryChilvers
                                          wrote on last edited by
                                          #20

                                          Know how to protect yourself from this? Use ReSharper! As soon as you type the "Foo.", ReSharper adds "Crash." in front of it and prevents Visual Studio from having fits! ReSharper, best developer tool, EVER! (possibly even better than Visual Studio! ;) )

                                          J 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