How debugger works internally?
Whenever we compile with -g option, it will create a symbol table, and according that table for each function and line it will call ptrace ...and do the things