【问题标题】:How to see console output after attaching to running process in Qt Creator?附加到 Qt Creator 中正在运行的进程后如何查看控制台输出?
【发布时间】:2018-10-26 12:56:31
【问题描述】:

我在 Windows 上有一个基于 Qt 的应用程序的层次结构。一个 GUI 应用程序通过 QProcess::startDetached 启动了另一个控制台应用程序(但没有可见的控制台窗口)。我想用 QtCreator 的调试器附加到这个控制台应用程序。但附加后我看不到任何控制台输出(标准的“应用程序输出”选项卡 Alt+3 为空)。

当我从 QtCreator 单独运行控制台应用程序时,我会看到“qtcreator_process_stub.exe 控制台”,它显示了所有输出。

在我的情况下,是否有办法在附加到正在运行的进程后查看控制台输出,即无需将其作为单独的应用程序重新启动?

【问题讨论】:

    标签: c++ qt debugging console-application qt-creator


    【解决方案1】:

    编辑

    要获得 QProcess 输出,它必须是应用程序的“一部分”:这似乎无法使用 startDetached。


    如果您的 GUI 应用程序中有一个 QProcess 实例,则可以使用 start() 方法运行该进程。此时,您可以依靠在标准输出/错误上打印某些内容时发出的信号:

    QProcess::readyReadStandardOutput()
    
    QProcess::readyReadStandardError()
    

    要获取文本,请将它们连接到插槽,然后调用:

    process->readAllStandardOutput()
    
    process->readAllStandardError()
    

    【讨论】:

    • 你是在建议我通过QProcess 读取控制台输出吗?我的问题是关于如何在 QtCreator IDE 中获取控制台输出,而不是在创建 QProcess 对象的应用程序上。
    • 我已经编辑了答案,但基本上是的,您必须通过 QProcess 检索数据,然后使用 qDebug() 打印出来才能在 QtCreator 输出中看到它。
    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多