Get me started with debugging in ROBOTC

I’ve only toyed around with the ROBOTC debugger a little bit. I need some advice on how to use it well.

What do I need? Do I need a joystick to control the robot while debugging? Is there a virtual joystick I am missing?

How do output a log file of sensor values?

What are some good practices?

Well I start with
Motors
Sensors
Global variables.
Whenever I need to test something I make it global while I work on it and then make it local again afterwards. You cant enter joystick values without a joystick, you can however modify the variables that a joystick would modify. Like for example, a button could turn a mechanism on but really the button flips the variable intakeOn. In the debugger you can flip that as well.

A lot of the good high level debugging that I have done requires having the wireless programming cable, but if you have that, you can watch all of the sensors, motors, and variables in real time on a computer. This is potentially indispensable. Otherwise, LCD screens are nice for testing, and even a speaker. In the robotc compiler, under robot, you can open up debugging windows which will display values

Is it possible to set breakpoints in RobotC during debugging and then go straight to the breakpoint, step through the code line by line and inspect the value of variables (similar to MS Visual Studio)?