【发布时间】:2009-09-14 06:14:07
【问题描述】:
有没有办法通过显示当前行来“实时”查看 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()'ing 减慢很多,这很好)。理想情况下,解决方案是命令行工具(或者兼容 OS X 的 GUI 应用程序)
也许用法是……
$ 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 秒
(以前可能有人问过这个问题,但我不确定要搜索什么,因此找不到任何东西)
【问题讨论】: