Debugging vs Reverse Engineering

I have some questions and I’m thankful if someone answer to them clearly:

1- I want to know, is GDB just useful for bug hunting or a security researcher can use it to find vulnerabilities too?

2- Is bug vs vulnerability? Consider someone that find an exploit in a program. He/she found a bug or vulnerability? He/she used a debugger to find that or Reverse Engineering tools?

3- A debugger could be a vulnerability researcher or vice versa?

Thank you.