The terms debugging and antibugging seem to be widely used for referring to tools, measures and design patterns to get rid of bugs.
After reading Peter Norvig's Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP I was not sure about the difference between those terms:
It is a good idea to include antibugging checks in your code in addition to doing normal debugging. Antibugging code checks for errors and possibly take corrective actions.
And further:
It may seem like wasted effort to spend time writing assertions that (if all goes well) will never be used. However, for all but the perfect programmer, bugs do occur, and the time spent antibugging will more than pay for itself in saving debugging time. Whenever you develop a complex data structure, such as some kind of data base, it is a good idea to develop a corresponding consistency checker. A consistency checker is a function that will look over a data structure and test for all possible errors. When a new error is discovered, a check for it should be incorporated into the consistency checker. Calling the consistency checker is the fastest way to help isolate bugs in the data structure. In addition, it is a good idea to keep a list of difficult test cases on hand. That way, when the program is changed, it will be easy to see if the change reintroduces a bug that had been previously removed. This is called regression testing, and Waters (1991) presents an interesting tool for maintaining a suite of regression tests.
And here is another example from a lecture called "Programming Language Paradigms" at the University of San Francisco (Chris Brooks, 2004). There, as @Max3k pointed out in this post,
it seems that "antibugging" is a term that covers many good practices and/or the resulting code. It mentions defensive programming, throwing and catching exceptions, named exceptions, (unit) testing. Also according to the source just using a strongly typed langue over a dynamic one, would mean that you are "antibugging".
Yet another reference, many thanks to @CandiedOrange:
Antibugging means "defect avoidance", as opposed to debugging, which means "defect removal".
C through design - George E. Defenbaugh, Richard Smedley Franklin, Beedle, 1988 p16
So I googled further for having a precise and objective answer but wasn't able to get an authoritative answer, nor do I have much experience on that (as until now I did just "domestic" projects).
Can you tell me the difference between the two terms in order to distinguish them and use them correctly ?
DISCLAIMER Antibugging seems not yet to be as globally accepted as I thought. But there is evidence that some reputed people are using both terms, and both in the academia and the industry. I think this justifies the question and show that this is not opinion based.