Menjelang akhir tahun, kami di JetBrains mengeluarkan rilis "kereta uap" tradisional untuk alat desktop kami. Kami telah menulis tentang beberapa di antaranya ( WebStorm , DataGrip ) di sini di Habré. Dan hari ini saatnya memberi tahu Anda tentang pembaruan lingkungan pengembangan lintas platform kami di C dan C ++ - CLion 2020.3!
Secara singkat tentang yang paling penting:
- Debugger sekarang memiliki kemampuan untuk memeriksa dump memori dan menjalankan konfigurasi dengan hak administrator. Dan sekarang Anda dapat memindahkan titik eksekusi melalui kode ke segala arah selama sesi debugging.
- Untuk pengujian unit, kami telah menambahkan dukungan untuk CTest, runner pengujian yang disertakan dengan model desain CMake.
- Qt Qt- UI, , Qt .
- , Makefile, CLion. CMake CMake.
- MISRA C 2012 MISRA C ++ 2008.
- Serta banyak penyempurnaan lainnya untuk konfigurasi peluncuran dan debug, dukungan untuk sistem kontrol versi, dan untuk mode pengembangan jarak jauh. Berbagai peningkatan UI yang bagus. Dan… pratinjau yang telah lama ditunggu dari pengembangan kolaboratif baru dan layanan pemrograman pasangan.
Versi baru dapat diunduh dari situs web dan dicoba gratis selama 30 hari.Jika Anda memiliki langganan aktif CLion atau All Products Pack, perbarui saja versinya ke 2020.3. Sebagai pengingat, saat Anda membeli langganan tahunan untuk produk apa pun, Anda akan menerima lisensi cadangan selamanya .
Sekarang mari kita bicara tentang inovasi dan peningkatan di versi 2020.3 lebih detail.
Debugger
Rilis 2020.3 menandai tonggak utama dalam pengembangan integrasi debugger di CLion. Dan ini bukan kebetulan, karena integrasi ini digunakan bukan oleh satu, tetapi oleh beberapa produk perusahaan! CLion, plugin IntelliJ Rust , dan pratinjau awal dari lingkungan pengembangan game Rider for Unreal Engine . Bersama-sama, kami dapat menerapkan banyak fitur baru yang penting di debugger.
Debugging dengan dump memori
Prosesnya berakhir tidak normal, dengan kata lain, jatuh, meninggalkan tempat pembuangan memori? Run Action Baru | Open Core Dump, tersedia untuk Linux dan macOS, akan memungkinkan Anda untuk membuka memori dump dari proses yang jatuh di CLion untuk debugging lebih lanjut:
Dalam dialog Anda perlu menentukan jalur ke dump memori, jalur ke file dengan simbol debugging (misalnya, file yang dapat dieksekusi dari program cocok jika perakitan diaktifkan dalam mode debug), pencocokan jalur (jika file yang dapat dieksekusi dibuat di komputer lain). CLion kemudian akan membuat konfigurasi untuk men-debug dump memori ini yang dapat Anda jalankan.
Dialog dapat menampilkan daftar konfigurasi yang sudah dibuat. Konfigurasi juga dapat dibuat secara manual dari Run | Edit Konfigurasi. Selama proses debug dengan dump memori, Anda dapat menganalisis informasi tentang bingkai, memeriksa nilai variabel, melihat status memori dan kode assembler, mengevaluasi ekspresi, dan menjalankan perintah dari konsol debugger. Pada saat yang sama, karena alasan yang jelas, debugging langkah demi langkah dinonaktifkan dan jendela keluaran proses tidak tersedia.
Di antara batasan saat ini, selain tidak tersedianya fungsi baru pada platform Windows, perlu dicatat bahwa dalam kasus LLDB, file dengan simbol debug belum digunakan. Dan kemungkinan debugging dumps yang dikumpulkan di komputer lain dan debugging jarak jauh dari dump sangat terbatas ( CPP-22736 , CPP-22656 ).
Jalankan dan Debug dengan Hak Istimewa Administrator
Kotak centang baru muncul di konfigurasi peluncuran dan debug dari rilis ini - untuk meluncurkan konfigurasi dengan hak administrator. Penyesuaian didukung untuk berbagai jenis konfigurasi: CMake, Makefile, Gradle Native, Custom Build, CTest.
Untuk menggunakan fitur baru dengan lebih nyaman dalam praktiknya, kami telah menulis daemon khusus yang meminta Anda untuk tetap masuk sebagai administrator saat menjalankan konfigurasi tersebut untuk jangka waktu yang dipilih:
Baca lebih lanjut tentang cara kerja fitur baru ini di sini (dalam bahasa Inggris).
Mengatur titik eksekusi
Pengguna Visual Studio mungkin sudah familiar dengan fitur yang berguna seperti mengubah titik eksekusi selama sesi debugging. Untuk semua orang: bayangkan Anda ingin melewatkan eksekusi seluruh loop, mengubah cabang pernyataan kondisional, mundur beberapa langkah dalam aliran eksekusi program tepat selama sesi debugging. Sekarang CLion memiliki tindakan baru Atur Titik Eksekusi ke Kursor untuk ini , atau Anda dapat mengatur ulang panah kuning ke baris yang diinginkan secara manual tepat di editor:
Mari buat reservasi bahwa tindakan seperti itu dapat merusak program (misalnya, jika Anda melewatkan perintah untuk menginisialisasi variabel). Tetapi jika digunakan dengan terampil, ini akan memungkinkan Anda untuk men-debug aplikasi Anda dengan sangat efisien.
Kiat interaktif
Hampir semua IDE berbasis IntelliJ kami di versi 2020.3 memiliki tip interaktif dan jam tangan bawaan. Bahkan sebelum 2020.3, selama sesi debugging, Anda bisa melihat nilai variabel langsung di editor. Sekarang tip ini menjadi interaktif - Anda dapat memperluas variabel dan melihat nilai dari semua bidangnya: Anda
juga dapat menambahkan ekspresi arbitrer untuk menghitung dan melihat langsung di editor (di sebelah baris kode yang diperlukan). Ini ternyata lebih nyaman daripada jam tangan biasa (yang selalu ditampilkan di jendela debugger) ketika variabel yang digunakan dalam ekspresi hanya memiliki arti di tempat tertentu dalam kode (misalnya, variabel lokal).
Ingin melihat fitur baru beraksi? Cobalah sendiri atau tonton video ini dari pengacara pengembang kami:
Pengujian unit
Dalam hal kerangka pengujian unit, CLion mendukung Google Test, Catch (2), Boost.Test, dan doctest. Menurut Survei Ekosistem Pembangunan 2020 kami , 31% pengembang C ++ menggunakan Google Test. Oleh karena itu, kami meluangkan waktu untuk menyempurnakan presentasi hasil Google Test yang dijalankan di CLion:
- Kami langsung mempelajari cara membuat pohon pengujian, bahkan sebelum semua pengujian dijalankan.
- Mulai menampilkan nilai parameter uji (untuk uji berparameter).
- Memperkenalkan ikon khusus untuk menandai tes DINONAKTIFKAN di pohon.
- Dan yang paling penting, mereka secara signifikan mempercepat proses menemukan tes dalam proyek tersebut.
Pengguna kami (khususnya, di Habré) secara aktif meminta untuk menambahkan dukungan untuk CTest, runner pengujian yang disertakan dengan model proyek CMake. Itu tidak mudah, karena CTest sendiri merupakan alat peluncuran, dan bukan hanya kerangka kerja lain, dan oleh karena itu tidak cocok dengan API yang ada. Tapi akhirnya kami berhasil! CLion sekarang secara otomatis menemukan pengujian CTest dalam proyek, membuat konfigurasi peluncuran dan debug untuknya, membangun pohon yang menampilkan hasil pengujian. Anda bahkan dapat men-debug pengujian Anda - ini akan menyebabkan CLion menjalankan pengujian, bukan proses ctest.
Adapun batasan, perlu dicatat bahwa CLion mendukung CTest 3.14 dan lebih tinggi. Selain itu, jika blok pengujian dari kerangka kerja yang sudah didukung (Google Test, Catch (2), Boost.Test, dan doctest) dijalankan sebagai pengujian CTest, blok semacam itu akan memiliki satu entri di pohon hasil (artinya, ini sesuai dengan satu pengujian).
Video tradisional dari Phil Nash tentang peningkatan untuk pengujian unit:
Proyek Qt
Kami melihat bahwa CLion sering menulis proyek menggunakan kerangka kerja Qt. Dan, meskipun kami tidak berencana untuk membuat perancang antarmuka kami sendiri atau mendukung model proyek qmake, kami memutuskan untuk melakukan sesuatu untuk meningkatkan pengalaman pengguna di CLion ke arah ini.
Proyek UI dan template kelas
Dialog untuk membuat proyek baru sekarang menawarkan dua jenis baru - Qt Console Executable dan Qt Widgets Executable:
Tentukan nilai yang diperlukan - CLion membuat proyek CMake awal dari jenis yang dipilih, dan sekarang widget atau aplikasi konsol paling sederhana ada di saku Anda! Omong-omong, berbicara tentang CMake dan Qt, Qt6 menyarankan untuk menginstal beberapa pustaka melalui Conan (CLion juga memiliki plugin yang sesuai ) dan membangunnya melalui CMake dan Ninja. Apakah tidak ada alasan untuk mencoba CLion untuk pengembangan Qt?
Ngomong-ngomong, saat menambahkan kelas Qt UI baru, CLion bisa membuat tiga file sekaligus ( .ui dan file kelas). Untuk melakukan ini, pilih tindakan QT UI Class di menu tambah file baru.
Bekerja dengan Kode Qt
Kode Qt umumnya kode C ++ normal, tetapi memiliki kebiasaan sendiri. Misalnya, Qt memiliki gaya tertentu dalam mengimpor file header. Misalnya, ini dapat diaktifkan dengan benar
QtCore/qurl.h
, tetapi akan lebih tepat untuk digunakan
QUrl
. Gaya sekarang didukung selama impor otomatis di CLion:
Fungsi penyelesaian kode sekarang memahami kapan diperlukan untuk menawarkan varian sinyal saja atau hanya slot untuk entitas Qt utama:
Ini nyaman, karena daftar tarik-turun hanya menampilkan varian yang sesuai dengan artinya, dan tidak semua yang cocok dengan karakter yang diketik.
Fitur Qt apa yang secara pribadi tidak Anda miliki di CLion? Tulis di komentar!
Model desain di CLion
Kami secara bertahap menambahkan dukungan untuk lebih banyak jenis proyek menggunakan Makefile ke dalam CLion (kami menyimpan daftar proyek yang diuji di sini ). Pada rilis 2020.3, kami mendukung proyek yang menggunakan alat ccache , libtool , dolt , slibtool, dan jlibtool . Ini adalah proyek ZFS, PHP, Mono, Curl, dan lainnya. Konfigurasi run dan debug untuk target dari Makefile tingkat atas dibuat secara otomatis. Selain itu, untuk proyek Makefile, dimungkinkan untuk mengkompilasi ulang file terpisah tanpa harus membangun kembali seluruh proyek (dalam tata letak default - Ctrl + Shift + F9 di Windows / Linux dan ⇧⌘F9 di macOS).
Untuk proyek CMakeAnda sekarang dapat menonaktifkan profil CMake yang tidak digunakan untuk sementara. Ini sangat berguna jika proyek memiliki beberapa profil yang dikonfigurasi sekaligus untuk pengembangan jarak jauh (beberapa di antaranya mungkin dinonaktifkan sementara) atau untuk berbagai toolchain (juga tidak selalu digunakan secara bersamaan). Jika profil tersebut dinonaktifkan, waktu pemuatan proyek akan berkurang secara nyata. Sebelumnya, untuk ini, profil harus dihapus, tetapi sekarang Anda dapat menonaktifkannya. Ini dapat dilakukan dari pengaturan profil di Pengaturan / Preferensi | Bangun, Eksekusi, Penerapan | CMake atau dari dialog unduh CMake:
Untuk mempelajari lebih lanjut tentang peningkatan proyek Qt dan model proyek, lihat pembicaraan advokat-pengembang kami.
Standar MISRA
Klien kami mencakup banyak pengembang dan perwakilan tertanam dari industri otomotif. Bagi mereka, bagian penting dari proses pengembangan adalah sertifikasi kode menurut standar MISRA. Kami tidak dapat membantu dengan sertifikasi itu sendiri, tetapi kami cukup mampu menunjukkan kemungkinan inkonsistensi dengan standar MISRA pada tahap awal pengembangan! Dalam versi CLion 2020.3, kami mulai menambahkan pemeriksaan untuk standar MISRA C 2012 dan MISRA C ++ 2008 ke penganalisis kode statis bawaan:
Tidak semua didukung; daftar lengkap dapat ditemukan di halaman ini . Menyiapkan inspeksi cukup sederhana:
Kami akan menambahkan lebih banyak inspeksi MISRA di masa mendatang. Ada kemungkinan bahwa pemeriksaan AUTOSAR juga akan muncul.
Code With Me adalah alat pengembangan kolaboratif baru
Apakah tim Anda mempraktikkan pemrograman berpasangan? Bagaimana dengan alat untuk berbagi kode? Kami baru-baru ini meluncurkan program akses awal untuk alat pengembangan kolaboratif baru kami, Code With Me. Pada dasarnya, ini adalah plugin yang tersedia untuk hampir semua IDE desktop kami (sejauh ini tidak termasuk JetBrains Rider dan DataGrip). Ini memungkinkan Anda dan tim Anda untuk berkolaborasi dalam proyek langsung dari IDE Anda. Untuk mencoba Code With Me, instal plugin di Preferences / Settings | Plugin.
Anda dapat membaca lebih lanjut tentang kemampuan plugin di posting blog ini . Code With Me masih dalam pengembangan aktif. Jika Anda mengalami masalah saat menggunakannya, beri tahu kami di sini .
Dan banyak lagi
Perbaikan penting lainnya termasuk:
- Sekarang Anda dapat menggunakan skrip untuk menyiapkan lingkungan tempat konfigurasi run / debug akan dijalankan. Selain itu, Anda sekarang dapat mengedit konfigurasi run / debug langsung selama pengindeksan project.
- Kami telah memperluas kemampuan penyelesaian otomatis dengan cuplikan Clang. Mereka akan membantu untuk memperbaiki tidak hanya kata kunci, tetapi juga sintaks ekspresi integer:
- Skema warna CLion sekarang dapat disinkronkan dengan tema sistem operasi Anda. Untuk mengaktifkan fitur ini, masuk ke Settings / Preferences | Penampilan & Perilaku | Penampilan dan pilih opsi Sync with OS.
- , (Drag&Drop). Open in Right Split, Project, Recent Files Search Everywhere.
- Git-. VCS , VCS (, Git). Search Everywhere Git. , , .
Itu semua untuk kita. Kami senang Anda telah membaca sampai akhir. Terima kasih atas perhatiannya! Tinggalkan pertanyaan, pemikiran, dan saran Anda di komentar - kami tertarik dengan pendapat Anda, dan kami selalu dengan senang hati membantu!
CLion Team
Drive untuk Mengembangkan