Bir Robot Programında Debugging -Hata Ayıklama

Kaçınılmaz olarak, bir program beklediğimiz şekilde davranmayabilir. Bu gerçekleştiğinde, programın bunu neden yaptığını yaptığını anlamamız gerekir, böylece yapmasını istediğimiz şeyi yapmasını sağlayabiliriz. Bu tür istenmeyen program davranışına “bug” hata adı verilir ve düzeltme işlemine “debugging” hata ayıklama denir.

Hata ayıklayıcı, bir programda hata ayıklamaya yardımcı olmak için program akışını kontrol etmek ve değişkenleri izlemek için kullanılan bir araçtır. Bu bölümde bir FRC ® için bir hata ayıklama oturumunun nasıl ayarlanacağı açıklanacaktır. robot programı.

Not

Programlarında hata ayıklaması gereken, ancak bir hata ayıklayıcının -debugger nasıl kullanılacağını bilmeyen/öğrenmeye vakti olmayan yeni başlayan kullanıcılar için, genellikle, yalnızca ilgili program durumunu konsola yazdırarak bir programda hata ayıklamak mümkündür. Ancak, öğrencilerin sonunda bir hata ayıklayıcı-debugger kullanmayı öğrenmeleri şiddetle tavsiye edilir.

Hata Ayıklayıcıyı Çalıştırma

Running the debugger via the Command Palette.

WPILib önceden doldurulmuş Komut paletini açmak için kbd: Ctrl + Shift + P ye basın ve` WPILib` yazın veya WPILib Menu Item Menü Öğesi’ne tıklayın. Hata ayıklamayı başlatmak için Debug yazın ve Debug Robot Code menü öğesini seçin. Kod roboRIO’ya indirilecek ve hata ayıklamaya başlayacaktır.

Breakpoints-Duraksatma Noktaları

“breakpoint-kesme noktası”, kullanıcının program durumunu inceleyebilmesi için hata ayıklayıcının program yürütmesini duraklatacağı bir kod satırıdır. Bu, kullanıcının programın beklenen davranıştan tam olarak nerede saptığını belirlemek için sorunlu koddaki belirli noktalarda programı duraklatmasına izin verdiği için hata ayıklama sırasında son derece yararlıdır.

Hata ayıklayıcı, karşılaştığı ilk breakpoint da otomatik olarak durur.

Breakpoint-Duraksatma Noktası Belirleme

Where to place the cursor to create a breakpoint.

Kullanıcı programınızda bir kesme noktası ayarlamak için kaynak kodu penceresinin sol kenar boşluğunu (satır numarasının solunda) tıklayın : Küçük kırmızı bir daire, ilgili satırda kesme noktasının ayarlandığını gösterir.

Baskı İfadeleri ile Hata Ayıklama

Programınızda hata ayıklamanın başka bir yolu, kodunuzda yazdırma deyimleri kullanmak ve bunları RioLog’u Visual Studio Code veya Driver Station’da kullanarak görüntülemektir. Özellikle yüksek miktarlarda kullanıldıklarında çok verimli olmadıkları için baskı tabloları dikkatle eklenmelidir. Döngü taşmalarına neden olabileceğinden rekabet için kaldırılmalıdırlar.

System.out.print("example");
wpi::outs() << "example\n";

Debugging with NetworkTables

NetworkTables can be used to share robot information with your debugging computer. NetworkTables can be viewed with your favorite Dashboard or OutlineViewer. One advantage of NetworkTables is that tools like Shuffleboard can be used to graphically analyze the data. These same tools can then be used with same data to later provide an operator interface for your drivers.

Daha fazla bilgi edin

  • VS Code ile hata ayıklama hakkında daha fazla bilgi edinmek için bu link bağlantısına bakın.

  • Bu VS Code article <https://code.visualstudio.com/docs/editor/editingevolved> makalesinde bahsedilen özelliklerden bazıları, kodunuzla ilgili sorunları anlamanıza ve teşhis etmenize yardımcı olacaktır. Hızlı Onarım (sarı ampul) özelliği, neyin içe aktarılacağı dahil olmak üzere çeşitli sorunlarda çok yardımcı olabilir.

  • Bu kadar çok sorunda hata ayıklama zorunluluğunu önlemenin en iyi yollarından biri Birim Testi yapmaktır.

  • Robotunuzun çalıştığını doğrulamak Simulation gerçek robot üzerinde karmaşık hata ayıklama yapmak zorunda kalmayı önlemek için de harika bir yoldur.