Clionの優雅な完全なリモート自動同期とリモートデバッグc++を使用

3858 ワード

私のホームページへようこそ.com、転載は出典を明記してください.
要旨:linuxでvimでC++を書く場合、通常gdbでデバッグしますが、コードやジャンプコード、watchを好きなように見ることができません(getの正しい使い方がまだできていないためかもしれません).そのため、Clionは本場コードを自動的に同期したり、自分でリモートコードをダウンロードしてローカルに同期したり、リモートマシンで実行しているコードをデバッグしたりすることができることを発見しました.そのために記録します.
概要
CLionはCおよびC++の開発のために設計されたプラットフォーム間IDEです.IntelliJをベースに設計されており、開発者の生産性を向上させ、生産性を向上させるための多くのスマート機能が含まれています.
環境準備
  • オペレーティングシステム:macOS/Windows
  • IDE: CLion
  • ソースコードパス:Node Master
  • 自動同期
  • CLionの設定を開き、Preferences|Build,Execution,Deployment|Deployment
  • に入ります.
  • ポイントプラス、リモート構成
  • を追加
  • SFTPプロトコルに設定し、リモートip、port、passを設定してTest Connectionをクリックし、
  • に接続成功したかどうかを確認します.
  • Mappings
  • に切り替え
  • ローカルコードルートディレクトリLocal path
  • を設定
  • リモートコードルートディレクトリDeployment path
  • を設定
  • ファイルをアップロード
  • Uploadはアップロード、Downloadはダウンロード、ローカルとリモートでマッピングされたディレクトリは
  • に設定されています.
  • アップロード成功
  • runlvm.shファイルの更新に成功しました.現在の時間は3月18 21:42
  • です.
  • Tool-Deployment-Automatic Upload(always)で自動同期
  • に設定
  • 自動同期であれば、ローカルでコードを変更するたびに
  • を自分で同期できる.
  • Sync with Deployed toは、リモートコードをローカル
  • に自動的にダウンロードします.
  • 手動でプロジェクト全体をアップロード
  • のアップロードに成功し、100個のファイル
  • をアップロードしました.
  • リモートディレクトリの表示に成功しました.
  • はい、ローカルで変更があれば自動的にリモートに同期します.
    リモートデバッグ
    CentOS依存
    # cmake
    yum install cmake -y
    
    # gcc & gdb
    yum install gcc-c++ -y
    yum install gdb -y
    
    #gdbserver
    yum install gdb-gdbserver -y
    

    GDB Remote Debugの追加
    ローカルクリーオン配置
  • GDBリモートデバッグの構成GDB Remote Debug
  • を追加
  • リモートアクセスパラメータの設定(target remote args):tcp:xx.xx.xx.xx:1234
  • リモートパスとローカルパスのマッピング(Path mappings)
  • を設定する
  • リモートデバッグ接続が成功すると、ローカルデバッグのようにブレークポイント、シングルステップトレースなど
  • を設定できます.
  • デバッグには、ローカルとリモートのコード一致が必要です
  • 2つの方法でリモート構成を設定
    方法1、リモートgdbserverの起動リモートデバッグはgdbserverのサポートに依存し、gdbserverの起動プログラムを通じて、リモートデバッグの接続を待ってから、接続に成功してからプロセスを起動する.
    仮定コードのルートディレクトリ:/data/pzqu/read_phy_disk_use/、以下のコードを実行した後にコンパイルする
    cd /data/pzqu/read_phy_disk_use/build
    cmake .. -DCMAKE_BUILD_TYPE=Debug
    make
    gdbserver :1234 ./read_phy_disk_use
    

    注意:cmakeの指定には-DCMAKE_が必要ですBUILD_TYPE=Debugデバッグを取得してください
    メソッド2リモートgdbserverの動的接続gdbserverは、起動済みプロセスへの動的バインドもサポートします.
    gdbserver :1234 --attach 
    

    ブレークポイントデバッグ開始
  • 小さな虫をクリックして
  • のデバッグを開始
  • コードがブレークポイントに停止していることがわかります
  • Variablesは自分で設定できるwatch
  • 通常のデバッグと同じ
  • CLionで完全にリモートで作業
    これは非常に爽快な操作で、後で完全にIDEでコードを書くことができます.コマンドラインを使うのは専門的に見えますが、ツールを使うと効率的に仕事の効率を高めることができます.
  • Preferences|Build,Execution,Deployment|Toolchains
  • リモート接続情報を設定し、CLionはCMake gcc g++gdbの情報
  • を自動的に監視する.
  • Preferences|Build,Execution,Deployment|CMake
  • Toolchain設定したばかりの
  • を選択
  • 上のAutomatically reload CMake project on editingの設定にチェックを入れると、コードに修正がある限り
  • が自動的にコンパイルされます.
  • リモートToolchainsツールチェーンが構成され、対応するCMakeプロファイル
  • が構成されました.
  • 上の図は、自動コンパイルおよびアップロードされたディレクトリ/tmp/tmp.pIdETgMIBRであり、次の図
  • のように、自動同期ディレクトリに設定すればよい.
  • は現在、自動同期ディレクトリに設定されています.実行/デバッグ構成スイッチで適切なCMakeプロファイルを選択するだけで、アプリケーションとテストを完全にリモートで構築、実行、デバッグできます.
  • Applicationを追加してプログラム
  • を実行
  • リモート運転、ローカル出力結果
  • リモート運転、ローカル自動デバッグ
  • まとめ
  • CLionの同期情報を構成します.どのマシンのどのディレクトリに同期しますか.
  • Deploymentを使用すると、ローカルおよびリモートで自動同期および自動ダウンロードが可能になります.手動同期および手動ダウンロードコード
  • 構成GDB remote Debug設定
  • gdbserverを使用してプログラムをデバッグする
  • gdbserver attachを使用して、起動したプログラムに従ってデバッグ
  • を行う.
  • リモートコードデバッグ
  • を完全にローカルで実行
    その他
  • この方法は非常に優雅ではないでしょうか.そうすれば、ツールチェーン(Toolchains)を絶えず追加すれば、数え切れないほどのリモート環境にローカルで対応することができます.
  • この方法はJetBrainファミリーバケツ
  • に適用されるべきだ.