当输出重定向到文件时,我有一个控制台应用程序崩溃并出现 I/O 错误 6。这可能与控制台应用程序更改文本颜色这一事实有关,这在文件中没有多大意义。
- 这有效:
c:\dir\app.exe
- 这崩溃了:
c:\dir\app.exe >out.txt
当我>out.txt
在 IDE ( run\parameters\parameters\
) 中作为参数提供时,我只是>out.txt
作为参数获取。
如何使用重定向到文件而不是控制台的标准输出来调试应用程序?
当输出重定向到文件时,我有一个控制台应用程序崩溃并出现 I/O 错误 6。这可能与控制台应用程序更改文本颜色这一事实有关,这在文件中没有多大意义。
c:\dir\app.exe
c:\dir\app.exe >out.txt
当我>out.txt
在 IDE ( run\parameters\parameters\
) 中作为参数提供时,我只是>out.txt
作为参数获取。
如何使用重定向到文件而不是控制台的标准输出来调试应用程序?
重定向由命令行解释器进行,在 Windows 中是 cmd.exe
要调试应用程序,只需启动带有属性参数的 cmd.exe 即可启动应用程序并重定向输出,例如:
cmd.exe /c "你的应用程序.exe >redirect.txt"
要从 IDE 内部进行调试,请将 cmd.exe 配置为主机应用程序(运行/参数):
在您要停止的地方放置一个断点,并在加载操作后使用“运行到第一个源”启动一个新的 cmd.exe(项目/加载进程):
你已经完成了......调试器必须在你的断点处停止应用程序。
您可以尝试远程调试:
在应用程序的开头,添加一个ReadLn;
让您有时间从 Delphi 中附加到进程的
从命令行启动应用程序(指定 >out.txt 参数)
在Delphi中,连接app进程(Run | Attach to Process...
),设置断点然后切换到应用程序输入key
提示:调试器断点也可以在代码中设置:
asm
int 3
end;
确保它不会因目录权限而失败。完全限定输出文件路径到您保证能够写入的某个位置。否则,Windows7 可能正在与该目录玩游戏。(虚拟商店的东西)。