2017-11-29 41 views
1

私は組み込みLinuxターゲットのリモートデバッグを設定しています。私はターゲット上でgdbserverを実行し、ワークステーション上でgdbクライアントを実行していることを確認しました。私は、サーバーを起動し、ワークステーション側の実行にすることができますQt Creator(4.5ベータ版) - gdbserverに接続できません

(GDB)リモート10.28.22.226:2345

をターゲットと私はソースをリストアップし、うまくステップ実行することができます。

Qt Creatorではデバイスを設定しました。そのウィンドウで、GDBサーバーの実行ファイルを指定します:gdbserver(picを参照)。

Devices setup

私も、以下のようにデバッガタブ「&実行ビルドします」を、クロスデバッガ設定します。この場合

Build & Run Debuggers setup

を、私は実行可能でgdbserverをを手動で開始していますQt Creatorでデバッグを開始するには、デバッグ - >デバッグ開始 - >デバッグサーバプルダウンメニューへのアタッチを選択します。以下のようなプロンプトが表示され、サーバーポート(2345)に入ります。私はそれに適切なキットとローカル実行可能ファイル(リモートターゲット上の実行可能ファイルのコピー)を渡します。

Start Debugger dialog

私はOKヒットした後、その後、タイムアウトにgdbserverをと通信しようと、いくつかのコマンドを使用してローカルにGDBクライアントを実行しているようです。私はサーバでデバッグロギングを有効にしているので、Qt Creatorから実行されたクライアントからサーバには何も見えません。さらに、私はWindow-> Views-> Debugger Logを実行して、何が起こっているのかをより良く知ることができました。ログにはデバイスの正しいIPアドレスとポートが表示されますが、「ターゲットリモートIP:ポート」のようなものは表示されません。

私はここでヒントやリファレンスを探しています。私は現時点でちょっと立ち往生しているようです。ありがとう!

EDIT:追加情報 - gdbクライアントでコンパイルされたPythonがサポートされていることを確認しました。Qt CreatorにはPythonのサポートが必要です。また、Qt Creatorの電線に何も出てこないことをサポートしました。私はwiresharkのキャプチャを行い、ターゲット上でポート2345に行くものは見ません。

また、Qt Creatorのデバッガログ出力を私と共有して比較することができれば助かります。

+0

これは、ように見えます。 4.5ベータ版のバグQt Creator 4.3.1のコピーを走らせて、動作させました。1の場合、デバッグ - >デバッグ開始 - >デバッグサーバへのアタッチが表示されるダイアログには、「サーバアドレスを上書きする」フィールドがあります。そこに自分のIPアドレスを追加すると、何らかの理由でsshポートに移動しようとしたサーバアドレスを上書きしなくても機能しました。私はQtCデバッガのログに「target remote tcp:10.28.22.226:2345」という文字列を見ました。 –

+0

私はbugreports.qt.ioでQTCREATORBUG-19392を作成しました。 –

+0

Qt Creator 4.5RC1を試しましたが、この問題はありませんでした。 –

答えて

0

Qt Creator 4.5-beta1を避けてください。 4.5RC1にはこの問題はないようだ。上記の方法でリモートデバッグを行うことができました。

0

QtCreator 4.5.0でも同じバグがあるようです。 私が見つけた唯一の回避策は、リモートターゲットでGDBサーバーを手動で起動することです: "top"でデバッグするリモートプロセスのPIDを取得してから、次のコマンドを実行します:gdbserver --attach remote ip:remoteポートpid。 サーバが受信された後、私は最終的に選択します。サーバ」「デバッグを実行するにアタッチ」

をたぶんあなたは、ターゲット上のサーバーの起動スクリプトを書くことができ、上記のステートメントが含まれている...

+0

qt-creatorバグのサイトにあなたのコメントを見ました。私は、デバッグメニューを使用していないが、QtC画面の左下にあるプレイとデバッグアイコンを使用しています。デプロイメント情報が適切に設定されている場合は、それらは私のために働きます。 「再生」を選択すると、ターゲットファイルをコピーして実行します。 'デバッグ'の場合、リモートからgdbサーバーも起動します。 クライアントクロスデバッガをセットアップし、それをあなたのキットに関連付けることはできますか?また、パス上のターゲット上のgdbサーバーは、 'gdbserver'という名前ですか?デバイスの設定に正しいsshポートがあり、必要に応じて空きポートの範囲があることを確認します。 –

+0

たぶん私は理解できないかもしれません。リモートデバイスでアプリケーションをデバッグする必要があるときは、デバッグメニューと画面のボタンのアイコンの両方からOKです。私の問題は、子プロセス、つまりアプリケーションによって作成されたプロセスをデバッグすることです。私はこのプロセスをメインアプリケーションではなく、QTCreatorの以前のリリースで中断して、子プロセスにattacchingする必要がありました。 v4.5では何かが壊れています。もしそれが私のアプリケーションについてもっと正確になるのに役立つかもしれません。他にも興味があるかもしれません。 – kuhdav

+0

OK、ありがとうございます。私はあなたの最初のコメントからその情報を得ていませんでした。私はあなたがやっていることをやろうとしていない - 幸運! –

関連する問題