For the GNU debugger (gdb), I divided a paper in two and wrote in the first column “abstract” and in the second “concrete.” In the one I would put parameterized text beside commands; in the other, specific invocations of personal programs.
abstract concrete -------- -------- gdb <program> gdb ./a.exe breakpoint <function-name> breakpoint hello run n <-> s quit
You must compile with -g switch in gcc. This helps gdb orient itself. The message pertaining to missing line numbers is related.
Switching between abstract and concrete really helped. First, I did a lot of repetitious typing, which helped me remember. Second, gdb forced me to slow down and consider each line. I hope this technique lets me avoid sprinkling output statements in my code.