If you are serious into reverse engineering - forget about trainers and cheat engines.
It also supports debugging by itself or through other engines (gdb or windbg engines for example). You can "interrogate" the binary (more precisely, the database generated from the binary) in many ways from python scripts. IDA main strength is that it's an interactive disassembler. In its latest version it also supports TTD ( Time Travel Debugging). NET debugging and can do Kernel debugging (in this aspect it is the de facto Kernel debugger on Windows systems). It supports plugins (in C or C++), scripting (it has its own scripting language but it also supports officially JavaScript and a third-party python scripts loader). Being maintained by Microsoft it is very powerful when symbols are available. Windbg is mainly a symbolic debugger (although obviously it works without any symbols). On the other hand 圆4Dbg is actively maintained,open source and can handle x86 and 圆4. OllyDbg (closed source) hasn't been maintained since a long time now and is limited to x86 32-bit. Their main strength is debugging without symbolic information (although they can also do debugging with symbolic information). OllyDbg and 圆4Dbg falls roughly under the same category. It's quite hard to give an answer that is not opinion-based.