代码之家  ›  专栏  ›  技术社区  ›  Wouter van Nifterick Andrey

如何使用重定向输出调试Delphi应用程序

  •  5
  • Wouter van Nifterick Andrey  · 技术社区  · 14 年前

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

    • 这项工作: c:\dir\app.exe
    • 这次崩溃: c:\dir\app.exe >out.txt

    当我供应 >out.txt 作为IDE中的参数( run\parameters\parameters\ )我刚得到 >顺序文件 作为参数。

    如何使用重定向到文件而不是控制台的stdout调试应用程序?

    3 回复  |  直到 13 年前
        1
  •  12
  •   jachguate    14 年前

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

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

    cmd.exe/c“yourapapplication.exe>重定向.txt”

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

    Run/Parameters dialog

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

    Load process dialog

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

        2
  •  2
  •   mjn anonym    14 年前

    您可以尝试远程调试:

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

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

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

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

    asm
      int 3
    end;
    
        3
  •  0
  •   Chris Thornton    14 年前

    确保不会因为目录权限而失败。将输出文件路径完全限定到保证可以写入的位置。否则,Windows7可能正在使用目录进行游戏。(虚拟存储内容)。