The name ‘debugging’ comes from a time when computers were large, heavy machines built using vacuum tubes. Bugs easily got into these machines causing problems. So, operators had to literally find these bugs and throw them out.
Now computer programs can run on compact devices thanks to the advances in transistors and semiconductors. Debugging on such platforms is a matter of triaging the problem, which means figuring out where in the code the problem could be.
An invaluable tool in debugging problems in software are trace messages and logs. With the help of verbose log messages along with the use of debugger programs and a lot of trial and error, one can debug modern day programs.