When you are a programmer you belong to a semi elite club of people who know how to make the computer do what they want. Yes, other people can run programs on the computer and make those programs do incredible things. And sometimes they make the programs do things that they are not originally supposed to do. But when you are a programmer you can make the entire computer bend to your will. And the better you become at the craft the more that you are able to make the computer do. But you have to remember that just like in the Spiderman movies, with all of that power comes a lot of responsibility.
These days a lot of developers are moving off of the computer and into uncharted territory for a lot of them. Yes, the hot move these days is to start developing for mobile phones. And right now the two most popular platforms when it comes to mobile phones are IPhone and Android. While the IPhone started off as the most popular phone, in recent years the Android phones have a larger install base and have become a place where developers of mobile phones can move away from the crowded iTunes app store. But with the movement of a lot of new developers to the Android platform, you are starting to see a lot of rookie mistakes happen. And one of those rookie mistakes that are happening often is the leaving of programs in debuggable mode.
What does debuggable mode mean?
When we say a program has been left in debuggable mode, what we mean is that program has left symbols in it. These symbols are used by the debugger to figure out the machine code that a piece of code written by the programmer has produced. You have to remember that the code that the human writes is not the direct code that goes into the device. Humans have a hard time reading and working in direct machine code. So to get past that hurdle, most programming languages are considered human readable and then when they are compiled they become machine readable which is otherwise known as machine code. So when a programmer wants to find out exactly what is going on with the program that they wrote they make sure that it is in debuggable mode and they have a look themselves.
Now you might be asking what the big deal is. Only a programmer would understand it so there is no rush to fix it. That is wrong. Information like this can help a black hat hacker convert your program from its original purpose and allow it to start to cause a lot of damage. You do not want to give another person this much control of your programs. This is why you need to make sure that it is turned off before it is shipped.
IPhone phones have debuggable modes as well and so do your computer programs. And they should all be turned off once the developer has finished creating the program and is ready to ship it to the market. If you are the programmer and you do not do this then you are putting your end users and anyone else who uses your program at a lot of risk.