今幎の最終リリヌスはCLion2020.3ですデバッガヌの新機胜により、MISRAはQtのチェックず改善を行いたす

こんにちは、Habr



今幎が終わりに近づくに぀れ、JetBrainsは、デスクトップツヌル甚の埓来の「スチヌムトレむン」リリヌスを発衚したす。それらのいく぀かWebStorm、 DataGripに぀いおは、ここHabréで すでに曞いおいたす。そしお今日は、CおよびC ++でのクロスプラットフォヌム開発環境の曎新に぀いおお話ししたす-CLion2020.3



CLion2020.3リリヌス



最も重芁なこずに぀いお簡単に



  • デバッガヌは、メモリダンプを調べ、管理者暩限で構成を実行できるようになりたした。これで、デバッグセッション䞭に実行ポむントをコヌド内の任意の方向に移動できたす。

  • CTest — , CMake.

  • Qt Qt- UI, , Qt .

  • , Makefile, CLion. CMake CMake.

  • MISRA C 2012 MISRA C ++ 2008.

  • たた、起動ずデバッグの構成、バヌゞョン制埡システムのサポヌト、およびリモヌト開発に関するその他の倚くの改善。さたざたなUIの改善。そしお 新しい共同開発ずペアプログラミングサヌビスの埅望のプレビュヌ。



新しいバヌゞョンは、Webサむトからダりンロヌドしお、30日間無料で詊すこずができたす 。CLionたたはAll Products Packのアクティブなサブスクリプションをお持ちの堎合は、バヌゞョンを2020.3に曎新しおください。念のため、補品の幎間サブスクリプションを賌入するず、バックアップの氞久ラむセンスを受け取りたす 。



それでは、バヌゞョン2020.3の革新ず改善に぀いお詳しく説明したしょう。



デバッガ



2020.3リリヌスは、CLionでのデバッガヌ統合の開発における䞻芁なマむルストヌンを瀺しおいたす。そしお、これは偶然ではありたせん。なぜなら、この統合は1぀ではなく、䌚瀟の耇数の補品によっお䜿甚されおいるからです。CLion、IntelliJ Rustプラグむン、 およびRider for UnrealEngineゲヌム開発環境の初期プレビュヌ 。䞀緒に、私たちはデバッガヌに倚くの重芁な新機胜を実装するこずができたした。



メモリダンプを䜿甚したデバッグ



プロセスが異垞終了したした。぀たり、クラッシュしおメモリダンプが残ったのでしょうか。新しい実行アクション| LinuxおよびmacOSで䜿甚可胜なOpenCore Dumpを䜿甚するず、CLionでフォヌルしたプロセスのメモリダンプを開いおさらにデバッグ



コアダンプを開く



できたす。ダむアログで、メモリダンプぞのパス、デバッグシンボルを含むファむルぞのパスを指定する必芁がありたすたずえば、アセンブリが有効になっおいる堎合は、プログラムの実行可胜ファむルが適しおいたす。デバッグモヌド、パスマッチング実行可胜ファむルが別のマシンでビルドされた堎合。 CLionは、実行可胜なこのメモリダンプをデバッグするための構成を䜜成したす。



ダむアログには、䜜成枈みの構成のリストを衚瀺できたす。構成は、実行|から手動で䜜成するこずもできたす。構成を線集したす。メモリダンプを䜿甚したデバッグ䞭に、フレヌムに関する情報の分析、倉数の倀の調査、メモリずアセンブラコヌドの状態の衚瀺、匏の評䟡、およびデバッガコン゜ヌルからのコマンドの実行を行うこずができたす。同時に、明らかな理由により、ステップバむステップのデバッグが無効になり、プロセス出力りィンドりが䜿甚できなくなりたす。



コアダンプのデバッグ



珟圚の制限の䞭で、Windowsプラットフォヌムで新しい機胜が䜿甚できないこずに加えお、LLDBの堎合、デバッグシンボルを含むファむルがただ䜿甚されおいないこずに泚意しおください。たた、別のマシンで収集されたダンプのデバッグずダンプのリモヌトデバッグの可胜性は非垞に限られおいたす CPP-22736、 CPP-22656。



管理者暩限で実行およびデバッグする



このリリヌスの起動およびデバッグ構成に新しいチェックボックスが衚瀺され、管理者暩限で構成を起動したす。カスタマむズは、CMake、Makefile、Gradle Native、Custom Build、CTestなどの倚くのタむプの構成でサポヌトされおいたす。



新しい機胜を実際に䟿利に䜿甚するために、このような構成を遞択した期間実行するず、管理者ずしおログむンしたたたにするように求める特別なデヌモンを䜜成したした。



暙高蚭定



この新機胜の動䜜に぀いお詳しくは、 こちらをご芧ください英語。



実行ポむントの蚭定



Visual Studioナヌザヌは、デバッグセッション䞭に実行ポむントを倉曎するなどの䟿利な機胜に粟通しおいる堎合がありたす。他のすべおの人のためにルヌプ党䜓の実行をスキップし、条件ステヌトメントの分岐を倉曎し、デバッグセッション䞭にプログラム実行のフロヌのいく぀かのステップに戻るこずを想像しおください。これで、CLionに新しいアクションSet Execution Point to Cursorが远加さ れたした。たたは、゚ディタヌで黄色の矢印を目的の行に手動で再配眮できたす。 この



実行ポむントの蚭定



ようなアクションによっおプログラムが䞭断する可胜性があるこずを予玄したしょうたずえば、倉数を初期化するコマンドを芋逃した堎合。しかし、巧みに䜿甚すれば、アプリケヌションを非垞に効率的にデバッグできたす。



むンタラクティブなヒント



バヌゞョン2020.3のほがすべおのIntelliJベヌスのIDEには、むンタラクティブなヒントず組み蟌みの時蚈がありたす。 2020.3より前でも、デバッグセッション䞭に、゚ディタヌで倉数の倀を確認できたした。これで、これらのヒントがむンタラクティブになりたした。倉数を展開しお、そのすべおのフィヌルドの倀を確認



むンタラクティブなヒント



できたす。 たた、゚ディタヌで必芁なコヌド行の暪にカりントしお衚瀺するための任意の匏を远加するこずもできたす。これは、匏で䜿甚される倉数がコヌド内の特定の堎所でのみ意味を持぀堎合ロヌカル倉数など、通垞の監芖デバッガヌりィンドりに垞に衚瀺されるよりも䟿利であるこずがわかりたす。



新機胜の動䜜を確認したいですか自分で詊しおみるか、開発者匁護士からのこのビデオをご芧ください。





ナニットテスト



ナニットテストフレヌムワヌクに関しお、CLionはGoogle Test、Catch2、Boost.Test、およびdoctestをサポヌトしおいたす。私たちによるず、 2020幎の開発゚コシステムの調査、 C ++開発者の31がGoogleのテストを䜿甚したす。そのため、CLionでのGoogleテストの実行結果の衚瀺を改善するために時間をかけたした。



  • すべおのテストが実行される前でも、すぐにテストツリヌを構築する方法を孊びたした。

  • テストパラメヌタ倀の衚瀺を開始したしたパラメヌタ化されたテストの堎合。

  • ツリヌで無効DISABLEDテストをマヌクするための特別なアむコンを導入したした。

  • そしお最も重芁なこずは、プロゞェクトでテストを芋぀けるプロセスを倧幅に加速したこずです。



Gt実行



ナヌザヌ特にここHabréは、CMakeプロゞェクトモデルに付属するテストランナヌであるCTestのサポヌトを远加するよう積極的に䟝頌したした。 CTestはそれ自䜓が起動ツヌルであり、単なる別のフレヌムワヌクではないため、非垞に簡単ではありたせんでした。したがっお、既存のAPIにうたく適合したせんでした。しかし、぀いにやった CLionは、プロゞェクト内のCTestテストを自動的に怜出し、それらの起動およびデバッグ構成を䜜成し、テスト結果を衚瀺するツリヌを構築するようになりたした。テストをデバッグするこずもできたす。これにより、CLionはctestプロセスではなく、テストを実行したす。



制限に぀いおは、CLionがCTest3.14以降をサポヌトしおいるこずに泚意しおください。さらに、すでにサポヌトされおいるフレヌムワヌクGoogle Test、Catch2、Boost.Test、およびdoctestのテストブロックがCTestテストずしお実行される堎合、そのようなブロックは結果ツリヌに1぀の゚ントリを持ちたす぀たり、1぀のテストに察応したす。



ナニットテストの改善に関するPhilNashの埓来のビデオ





Qtプロゞェクト



CLionはQtフレヌムワヌクを䜿甚しおプロゞェクトを䜜成するこずがよくありたす。たた、独自のむンタヌフェむスデザむナヌを䜜成したり、qmakeプロゞェクトモデルをサポヌトしたりする予定はありたせんが、CLionでのナヌザヌ゚クスペリ゚ンスをこの方向に改善するために䜕かを行うこずにしたした。



UIプロゞェクトずクラステンプレヌト



新しいプロゞェクトを䜜成するためのダむアログに、Qt ConsoleExecutableずQtWidgets Executableの2぀の新しいタむプが提䟛されるようになりたした



新しいQtプロゞェクト



必芁な倀を指定しおください-CLionは、遞択したタむプの開始CMakeプロゞェクトを䜜成し、最も単玔なりィゞェットたたはコン゜ヌルアプリケヌションがポケットに入っおいたすちなみに、CMakeずQtに぀いお蚀えば、Qt6は、Conanを介しおいく぀かのラむブラリをむンストヌルしCLionにも察応する プラグむンがありたす、CMakeずNinjaを介しおそれらを構築するこずを提案し おいたす。Qt開発にCLionを詊す理由はありたせんか



ちなみに、新しいQt UIクラスを远加するず、CLionは䞀床に3぀のファむルを䜜成できたす .uiおよびクラスファむル。これを行うには、[新しいファむルの远加]メニュヌで[QTUIクラス]アクションを遞択したす。



Qtコヌドの操䜜



Qtコヌドは通垞通垞のC ++コヌドですが、独自の癖がありたす。たずえば、Qtにはヘッダヌファむルをむンポヌトする特定のスタむルがありたす。たずえば、正しく有効にするこずはできたすが QtCore/qurl.h



、を䜿甚する方が正しいでしょう QUrl



。CLionでの自動むンポヌト䞭にスタむルがサポヌトされるようになりたした



Qt自動むンポヌト



。コヌド補完機胜は、シグナルのバリアントのみ、たたはメむンのQt゚ンティティのスロットのみを提䟛する必芁がある堎合を理解するよう



Qt完了



になりたした。ドロップダりンリストには、意味に䞀臎するバリアントのみが衚瀺され、䞀臎するすべおのバリアントは衚瀺されないため、これは䟿利です。入力された文字によっお。



CLionに個人的に欠けおいるQt機胜は䜕ですかコメントを曞いおください



CLionのデザむンモデル



Makefileを䜿甚するプロゞェクトのサポヌトをCLionに埐々に远加しおいたすテスト枈みプロゞェクトのリストは ここにありたす。 2020.3リリヌスでは、ccache、 libtool、 dolt、 slibtool、および jlibtoolツヌルを䜿甚するプロゞェクトをサポヌトしおい たす。..。これらは、ZFS、PHP、Mono、Curlプロゞェクトなどです。トップレベルのMakefileからタヌゲットの実行およびデバッグ構成が自動的に生成されたす。さらに、Makefileプロゞェクトの堎合、プロゞェクト党䜓を再構築するこずなく、別のファむルを再コンパむルするこずが可胜になりたしたデフォルトのレむアりトでは、Windows / LinuxではCtrl + Shift + F9、macOSでは⇧⌘F9。 CMake



プロゞェクトの堎合 䞀時的に䜿甚されおいないCMakeプロファむルを無効にできるようになりたした。これは、プロゞェクトにリモヌト開発甚に䞀床に耇数のプロファむルが構成されおいる堎合䞀郚は䞀時的に無効になっおいる堎合がありたす、たたはさたざたなツヌルチェヌン甚に垞にすべお䞀緒に䜿甚されるずは限りたせん、特に圹立ちたす。このようなプロファむルを無効にするず、プロゞェクトの読み蟌み時間が倧幅に短瞮されたす。以前は、このためにプロファむルを削陀する必芁がありたしたが、今では単にオフにするこずができたす。これは、[蚭定] / [蚭定] | [蚭定]のプロファむル蚭定から実行できたす。ビルド、実行、展開| CMakeたたはCMakeダりンロヌドダむアログから



CMakeプロファむルを無効/有効にする



Qtプロゞェクトおよびプロゞェクトモデルの改善の詳现 に぀いおは、開発者擁護者の講挔を参照しおください。



MISRA暙準



私たちのクラむアントには、倚くの組み蟌み開発者や自動車業界の代衚者が含たれおいたす。圌らにずっお、開発プロセスの重芁な郚分は、MISRA暙準に埓ったコヌドの認蚌です。認定自䜓に぀いおはお手䌝いできたせんが、開発の初期段階でMISRA暙準ずの矛盟の可胜性を指摘するこずはできたす。バヌゞョンCLion2020.3では、MISRA C2012およびMISRAC ++ 2008暙準のチェックを組み蟌みの静的コヌドアナラむザヌに远加し始めたした



MISRAチェック



。すべおがサポヌトされおいるわけではありたせん。完党なリストはこの ペヌゞにありたす。怜査の蚭定は非垞に簡単です



MISRA蚭定



。将来、MISRA怜査をさらに远加する予定です。AUTOSARチェックも衚瀺される可胜性がありたす。



Code With Meは、新しい共同開発ツヌルです。



あなたのチヌムはペアプログラミングを緎習しおいたすかコヌドを共有するためのツヌルはどうですか最近、新しい共同開発ツヌルであるCode WithMeの早期アクセスプログラムを開始したした。基本的に、これは ほずんどすべおのデスクトップIDEで䜿甚できるプラグむンですこれたでのずころ、JetBrains RiderずDataGripを陀く。これにより、あなたずあなたのチヌムは、IDEから盎接プロゞェクトで共同䜜業を行うこずができたす。 Code With Meを詊すには、[蚭定] / [蚭定] | [蚭定]にプラグむンをむンストヌルしたす。プラグむン。



私ず䞀緒にコヌディングする



プラグむンの機胜の詳现に぀いおは、これらのブログ投皿をご芧ください 。..。Code WithMeはただ掻発に開発䞭です。それを䜿甚䞭に䜕らかの問題が発生した堎合は、私たちに知らせおください ここに。



そしおはるかに



その他の重芁な改善点は次のずおりです。



  • これで、スクリプトを䜿甚しお、実行/デバッグ構成を実行する環境をセットアップできたす。さらに、プロゞェクトのむンデックス䜜成䞭に実行/デバッグ構成を線集できるようになりたした。

  • Clangスニペットを䜿甚しお自動補完機胜を拡匵したした。キヌワヌドだけでなく、敎数匏の構文も修正するのに圹立ちたす。



    Clangスニペット

  • CLion . , Settings / Preferences | Appearance & Behavior | Appearance Sync with OS.

  • , (Drag&Drop). Open in Right Split, Project, Recent Files Search Everywhere.

  • バヌゞョン制埡システムずの統合により、Gitステヌゞングがサポヌトされるようになりたした。VCSメニュヌでは、プロゞェクトで䜿甚しおいるVCSGitなどが考慮されるようになりたした。たた、[どこでも怜玢]ダむアログに[ Git]タブが衚瀺されたした。これで、ハッシュ、コミットメッセヌゞ、タグ、およびブランチを怜玢できたす。



これですべおです。最埌たでお読みいただき、誠にありがずうございたす。ご枅聎ありがずうございたしたコメントにあなたの質問、考え、提案を残しおください-私たちはあなたの考えに興味があり、い぀でも喜んでお手䌝いしたす



CLionチヌム

開発ぞの意欲



All Articles