Есть ли способ просмотреть код C "вживую", отображая текущую текущую строку, как она выполняется?
Вы можете довольно близко, используя GDB, но мне интересно, есть ли что-то более элегантное, чем удержание клавиши возврата:
$ gdb ./mycode
(gdb) break 1
Breakpoint 1 at 0x100000f08: file mycode.c, line 1.
(gdb) run
Starting program: mycode
Breakpoint 1, main () at mycode.c:4
4 for(x = 0; x < 4; x++){
(gdb) next
5 printf("Example\n");
(gdb) [press return]
Example
4 for(x = 0; x < 4; x++){
(gdb) [press return]
Производительность не является проблемой (очевидно, она будет сильно снижаться всеми printf()
, что нормально). В идеале решением будет инструмент командной строки (или совместимое с OS X приложение с графическим интерфейсом)
Возможно, использование будет в духе ..
$ viewlivec --delay 500 -- ./mycode -mycodes=arg --verbose
01: int main(){
02: int x;
03: for(x = 0; x < 4; x++){
04: printf("Example\n");
05: }
03: for(x = 0; x < 4; x++){
04: printf("Example\n");
05: }
03: for(x = 0; x < 4; x++){
04: printf("Example\n");
05: }
03: for(x = 0; x < 4; x++){
04: printf("Example\n");
05: }
06: }
Флаг --delay
будет ожидать 0,5 секунды между каждой строкой
(Возможно, об этом спрашивали ранее, но я не совсем знал, что искать, поэтому ничего не смог найти)