Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-36201

Qt5.2 android: fail to debug app due to time out when waiting for pong file

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Not Evaluated
    • 5.3.0
    • 5.2.0
    • QPA
    • None
    • ubuntu 12.04 x86-64
      Qt5.2
      qtcreator 3.0
    • Android
    • aaedccf1161ab564d9353cb32076babb2ba717aa

    Description

      I wrote a fairly simple widget based app using qtcreator 3.0, Qt5.2 under ubuntu 12.10 x86-64, I can run it perfectly in an android virtual device, but I can't debug it due to time out when waiting for pong file. The log message from logcat has been attached.
      As we can see in the log text:

      I/Qt JAVA ( 4662): DEBUGGER: extra parameters: Bundle[{debug_ping=true, gdbserver_socket=/data/data/org.qtproject.example.testAndroid/debug-socket, gdbserver_command=/data/data/org.qtproject.example.testAndroid/lib/gdbserver --multi +/data/data/org.qtproject.example.testAndroid/debug-socket, load_local_jars=jar/QtAndroid-bundled.jar:jar/QtAndroidAccessibility-bundled.jar:, load_local_libs=plugins/platforms/android/libqtforandroid.so:, use_local_qt_libs=true, libs_prefix=/data/local/tmp/qt/, ping_file=/data/data/org.qtproject.example.testAndroid/debug-ping, static_init_classes=:, pong_file=/data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid}]

      I/Qt JAVA ( 4662): DEBUGGER: removing ping file /data/data/org.qtproject.example.testAndroid/debug-ping
      I/Qt JAVA ( 4662): DEBUGGER: removing pong file /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid
      I/Qt JAVA ( 4662): DEBUGGER: starting /data/data/org.qtproject.example.testAndroid/lib/gdbserver --multi +/data/data/org.qtproject.example.testAndroid/debug-socket
      I/Qt JAVA ( 4662): DEBUGGER: gdbserver started
      I/Qt JAVA ( 4662): DEBUGGER: waiting for socket at /data/data/org.qtproject.example.testAndroid/debug-socket, attempt 0
      I/Qt JAVA ( 4662): DEBUGGER: waiting for socket at /data/data/org.qtproject.example.testAndroid/debug-socket, attempt 1
      I/Qt JAVA ( 4662): DEBUGGER: socket ok
      I/Qt JAVA ( 4662): DEBUGGER: writing ping at /data/data/org.qtproject.example.testAndroid/debug-ping
      I/Qt JAVA ( 4662): DEBUGGER: wrote ping
      I/Qt JAVA ( 4662): DEBUGGER: waiting for pong at /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid, attempt 0
      I/Qt JAVA ( 4662): DEBUGGER: go to sleep
      I/Qt JAVA ( 4662): DEBUGGER: waiting for pong at /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid, attempt 1
      I/Qt JAVA ( 4662): DEBUGGER: go to sleep
      I/Qt JAVA ( 4662): DEBUGGER: waiting for pong at /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid, attempt 2
      I/Qt JAVA ( 4662): DEBUGGER: go to sleep

      ...

      I/Qt JAVA ( 4662): DEBUGGER: waiting for pong at /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid, attempt 148
      I/Qt JAVA ( 4662): DEBUGGER: go to sleep
      I/Qt JAVA ( 4662): DEBUGGER: waiting for pong at /data/local/tmp/qt/debug-pong-org.qtproject.example.testAndroid, attempt 149
      I/Qt JAVA ( 4662): DEBUGGER: go to sleep
      I/Qt JAVA ( 4662): DEBUGGER: time out when waiting for pong file
      W/System.err( 4662): java.lang.Exception:
      W/System.err( 4662): at org.qtproject.qt5.android.bindings.QtActivity.loadApplication(QtActivity.java:239)
      W/System.err( 4662): at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:522)
      W/System.err( 4662): at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:744)
      W/System.err( 4662): at android.app.Activity.performCreate(Activity.java:5231)
      W/System.err( 4662): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
      W/System.err( 4662): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
      W/System.err( 4662): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
      W/System.err( 4662): at android.app.ActivityThread.access$800(ActivityThread.java:135)
      W/System.err( 4662): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
      W/System.err( 4662): at android.os.Handler.dispatchMessage(Handler.java:102)
      W/System.err( 4662): at android.os.Looper.loop(Looper.java:136)
      W/System.err( 4662): at android.app.ActivityThread.main(ActivityThread.java:5017)
      W/System.err( 4662): at java.lang.reflect.Method.invokeNative(Native Method)
      W/System.err( 4662): at java.lang.reflect.Method.invoke(Method.java:515)
      W/System.err( 4662): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
      W/System.err( 4662): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
      W/System.err( 4662): at dalvik.system.NativeStart.main(Native Method)

      The app time out when waiting for pong file. But I can debug the app in android virtual device in my another windows machine which is also installed with Qt5.2 and qtcreator 3.0.
      I am curious about who is responsible for writing the pong file? I have took some time to read the code QtActivity.java, QtApplication.java and QtActivityDelegate.java, I found that in QtActivityDelegate.startApplication(), after the ping file has been written it just wait for the pong file. But I can't find the code writing the pong file. Is the pong file is expected to be written by gdbserver? If that is ture why the pong file was not written in my linux machine?

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            hjk hjk
            jianliang79 liang jian
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes