[quote user="Akhilan Gupta"]What is the reason behind that?[/quote]
Knowing your code would be a great help in detecting why it acts this way :)
Pressing a button will trigger multiple interrupts. This is called 'bouncing' and happens when a mechanical switch is opened or closed. Likely, your code isn't expecting this and crashes. Bouncing is not deterministic. Sometimes it bounces faster, sometimes slower, sometimes more and sometimes less. This would explain the seemingly random behavior. Maybe your code is fragile at a certain point of execution and the crash only happens when a bounce interrupt appears at this particular code segment.
There are different debounce strategies. It can be done in hardware (by an R/X filter that acts as low-pass for the signal transients during bouncing) or in software (e.g. starting a timer when an interrupt happens, and blocking disabling further interrupts for a short time, continuing - and re-arming the port interrupt - when the timer expires and bouncing has ceased).
[quote user="Akhilan Gupta"]What is voltage browout ?[/quote]Brownout is partial drop of supply voltage. Due to too much load, or temporary power source failure, the supply cannot provide enough current to keep the output voltage stable. The reduced voltage may make the MSP crash vhile the breakdown isn't enough to make it reset properly. Most MSPs have a brownout detection that puts the MSP into reset state, when the supply voltage is too low for default operation but not low enough to undergo a full power-on reset.
A brownout may happen when you switch on one LED too many.
Another possible reason could be that you have a pull-up of 10 Ohms instead of 10kOhms on your pushbutton. When you press it, this causes a high current and the supply voltage breaks down.