Am einfachsten geht es mit einem Debugger, sodass du das Programm
pausieren kannst, schrittweise ausführen kannst, register und Variablen
auslesen...
Da jeder Mikrocontroller Architektur da seine eigene Methode hat, musst
du sagen welchen uC du verwendest.
Auch hat so ziemlich jeder uC eine serielle Schnittstelle, die du leicht
über ein RS232 TTL-USB Adapterkabel mit modernen PCs benuzten kannst. Am
PC dann einfach ein Terminal (hterm bspw.) öffnen und dort die serielle
Schnittstelle öffnen und dann wird alles angezeigt was der uC sendet.
Dazu muss er natürlich was senden, was aber kein Hexenwerk ist. (mit
printf etc. lassen sich Zahlen leicht zu Strings umwandeln, dann fehlt
nur noch die UART ansteuerung, zu welcher es zig Beispiele im Internet
für jeden Mikrocontroller gibt)
Manch ein Mikrocontroller hat auch einen integerieten USB Port, welchen
du dafür natürlich auch verwenden kannst, nur ist das deutlichst
komplzierter und bei weitem nicht so komfortabel wie mit einer seriellen
Schnittstelle und einem externen UART-USB Adapter (bspw. von FTDI
http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm)