2016-04-25 7 views
0

私はモバイルデバイス(iOS & Android)での自動テストのためにPythonで書かれたプログラムを持っています。 (煙試験のために)、以下のように、このプログラムの適切なワークフローがある:USB接続デバイス(.ipaまたは.APP)に実行定義された時間が経過した後、LLDBセッションを終了します

  1. 展開用いIOS-展開

  2. スタートアプリケーション(デバッグプロセス) - > stdoutに書き込みます。

  3. 出力をパイプに書き込むことで、このようにして、デバッグプロセスの出力を並列に読み取ることができます。

  4. 検索針が出力に検出された場合、デバイスは

私の問題(これはかなり汚い回避策は、私が力-stopメソッドまたは類似した何かを挿入するつもりである)が再起動されますデバッグプロセスの出力で針が検出されると、lldbセッションは中断されますが、終了しません。 lldbセッションを終了するには、デバイスを再接続するか、ターミナルを終了して再度開く必要があります。

lldbコールに「time-to-live-flag」のようなものを追加して、lldbセッションが自動的に終了するまでの時間を判断できますか?私はlldbセッションを終了する方法を想像することができる別の方法は、デバイスが再起動して終了した後に再びセッションに参加することですが、lldbはios-deployのサブプロセスに見えます。したがって、lldbプロセスにアクセスする可能性はありませんでした。

答えて

1

lldbにはこのようなものは組み込まれていませんが、おそらくPythonでタイマーを設定し、それが適切であればデバッグセッションを終了させることができます。

注:デバイスを再起動すると、lldbからリモートデバッグサーバーへの接続が終了し、lldbはその接続が終了したことを検出してプロセスを終了する必要があります。それがデフォルトで起きたときには終了しませんが、デバッガのイベントを待っていたものは、デバッグの終了と終了、または必要な処理を検出できます。

注:lldbが(プログラムが実行中の場合)ldbがdebugserverからの入力を待機している場合、selectコールがEOFとともに戻るため、これは自動的に通知されるはずです。しかし、接続を閉じるときにプロセスが停止すると、lldbはおそらくそれが何かを読み込むまで気付かないでしょう。

後者の場合、lldbが "針"が見つかったことを示す停止に反応し、手動でデバッグセッションを終了させることができます。

関連する問題