Debugging and researching a bug are not very interchangeable.
Debugging is going through your code(using a debugger, running it while printing internal stuff, reviewing the code etc.) trying to find the part of your code that doesn't do what you meant it to do.
Researching is needed when you find a problem in a "black box" - a part of the code you can't probe, either because it's part of the language, or you don't have access to it's source code, or you simply lack the experience/knowledge/time to probe the source code by yourself. When you give that black box input you think is correct and it gives you incorrect output or side-effects, that means that either you don't use it properly or there is a bug in the component itself. At any rate - you need to research it in order to solve it.
Debugging can not be replaced with researching. Problems that need debugging are usually problems specific to your own code. If your function returns 2
instead of 3
, you can't google the bug because even if you find someone else whose function return 2
instead of 3
it'll probably be because of different reasons. Even if your bug falls into a broader pattern that you can research, you'll often need to do some debugging first to find out which pattern it is, and by doing that you have probably already solved the bug.
Researching can not be replaced with debugging. If you find such a black box you're not going to just throw input at it randomly until you happen to make it work. Since the problem is with something external you can actually look it up. If a function from external library returns 2
instead of 3
, and you find someone else on the internet who has the same problem, it's probably from the same reason, since you both use the same function.
Debugging and researching a bug are not very interchangeable. Which approach you should take(sometimes you'll need both!) depends on the bug at hand, not on some general rule decided beforehand.