5

当输出重定向到文件时,我有一个控制台应用程序崩溃并出现 I/O 错误 6。这可能与控制台应用程序更改文本颜色这一事实有关,这在文件中没有多大意义。

  • 这有效:c:\dir\app.exe
  • 这崩溃了:c:\dir\app.exe >out.txt

当我>out.txt在 IDE ( run\parameters\parameters\) 中作为参数提供时,我只是>out.txt作为参数获取。

如何使用重定向到文件而不是控制台的标准输出来调试应用程序?

4

3 回答 3

12

重定向由命令行解释器进行,在 Windows 中是 cmd.exe

要调试应用程序,只需启动带有属性参数的 cmd.exe 即可启动应用程序并重定向输出,例如:

cmd.exe /c "你的应用程序.exe >redirect.txt"

要从 IDE 内部进行调试,请将 cmd.exe 配置为主机应用程序(运行/参数):

运行/参数对话框

在您要停止的地方放置一个断点,并在加载操作后使用“运行到第一个源”启动一个新的 cmd.exe(项目/加载进程):

加载过程对话框

你已经完成了......调试器必须在你的断点处停止应用程序。

于 2010-11-22T18:29:41.710 回答
2

您可以尝试远程调试:

  • 在应用程序的开头,添加一个ReadLn;让您有时间从 Delphi 中附加到进程的

  • 从命令行启动应用程序(指定 >out.txt 参数)

  • 在Delphi中,连接app进程(Run | Attach to Process...),设置断点然后切换到应用程序输入key

提示:调试器断点也可以在代码中设置:

asm
  int 3
end;
于 2010-11-22T18:28:16.417 回答
0

确保它不会因目录权限而失败。完全限定输出文件路径到您保证能够写入的某个位置。否则,Windows7 可能正在与该目录玩游戏。(虚拟商店的东西)。

于 2010-11-22T21:22:18.523 回答