A disassembler is a software tool which transforms machine code into a human readable mnemonic representation called assembly language.
Disassembler is used for static code analysis.
Ex : IDA, hopper
Debugging is the art and science of finding and eliminating bugs in a software. Debuggers allow the user to view and change the running state of a program.
Debugger is used for dynamic code analysis.
Ex: gdb, x64dbg
A decompiler is a programming tool that converts an executable program or low-level/machine language into a format understandable to software programmers.
Ex : DejaVu, Mocha