{"id":12552,"date":"2017-10-01T04:49:55","date_gmt":"2017-10-01T03:49:55","guid":{"rendered":"https:\/\/sysprogs.com\/w\/?p=12552"},"modified":"2017-10-01T04:49:55","modified_gmt":"2017-10-01T03:49:55","slug":"10-reasons-to-try-out-visualgdb-5-3","status":"publish","type":"post","link":"https:\/\/sysprogs.com\/w\/10-reasons-to-try-out-visualgdb-5-3\/","title":{"rendered":"10 reasons to try out VisualGDB 5.3"},"content":{"rendered":"<p>Today we\u00a0happy to announce the final release of VisualGDB 5.3. Over the past several months and\u00a08 preview builds we have introduced and fine-tuned multiple\u00a0usability-focused improvements to your cross-platform development workflow and I will give you a quick overview of them in this post.<\/p>\n<p><!--more--><\/p>\n<h2>Advanced CMake Project Subsystem<\/h2>\n<p>VisualGDB has been supporting CMake for a while. However the new v5.3 brings this support to a new level. The new\u00a0Advanced CMake Project Subsystem\u00a0can be used\u00a0instead of the regular Visual C++ project system,\u00a0mapping the structure of the CMake files directly into Visual Studio: visualizing targets and settings and automatically editing CMakeLists.txt files in response to your\u00a0interaction with Visual Studio GUI:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12553\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake.png\" alt=\"cmake\" width=\"1041\" height=\"719\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake.png 1041w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake-300x207.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake-768x530.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cmake-1024x707.png 1024w\" sizes=\"(max-width: 1041px) 100vw, 1041px\" \/><\/a><\/p>\n<h2>Direct SSH file access<\/h2>\n<p>Previous versions of\u00a0VisualGDB could upload your source files to the Linux machine before building, or help you setup shared folders. The new VisualGDB 5.3\u00a0introduces\u00a0a new &#8220;vgdb-ssh:\/\/&#8221; file URL\u00a0 format and lets you\u00a0open, edit and build your projects directly on the Linux machine\u00a0over\u00a0SSH without importing anything locally:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/direct.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12554\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/direct.png\" alt=\"direct\" width=\"822\" height=\"662\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/direct.png 822w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/direct-300x242.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/direct-768x619.png 768w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/p>\n<p>This\u00a0eliminates synchronization issues and makes setup straight-forward, although it only works with the new Advanced CMake Projects.<\/p>\n<h2>Embedded\u00a0Debugging Usability<\/h2>\n<p>In VisualGDB 5.3 we have\u00a0significantly redesigned the usability of the embedded debug GUI. VisualGDB can now\u00a0distinguish individual instances of programming interfaces (like ST-Link) and\u00a0identify them\u00a0by serial numbers, will show progress when programming FLASH memory with OpenOCD and will diagnose common errors and show meaningful messages\u00a0helping you quickly understand the underlying problem:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/emb.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12555\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/emb.png\" alt=\"emb\" width=\"822\" height=\"642\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/emb.png 822w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/emb-300x234.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/emb-768x600.png 768w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/p>\n<h2>New Toolchain Engine<\/h2>\n<p>VisualGDB 5.3 includes a new toolchain\u00a0and BSP engine that\u00a0supports installing multiple\u00a0versions of the same\u00a0toolchain or BSP (Custom edition and higher),\u00a0provides convenient variables to avoid hardcoding toolchain\/BSP paths in the project files or VisualGDB settings files and makes the toolchain management generally more intuitive:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/tc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12556\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/tc.png\" alt=\"tc\" width=\"635\" height=\"243\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/tc.png 635w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/tc-300x115.png 300w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/a><\/p>\n<h2>Profiling of Linux Programs<\/h2>\n<p>VisualGDB 5.3\u00a0supports profiling of Linux programs using Valgrind and a powerful analytics engine built on top of it. Simply\u00a0start\u00a0profiling via Analyze-&gt;Analyze performance with VisualGDB and enjoy detailed instantly searchable per-function and per-line reports on your\u00a0code performance, or use them to explore the actual relations between functions involved in handling a complex case:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/06-lines.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12493\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/06-lines.png\" alt=\"06-lines\" width=\"935\" height=\"399\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/06-lines.png 935w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/06-lines-300x128.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/06-lines-768x328.png 768w\" sizes=\"(max-width: 935px) 100vw, 935px\" \/><\/a><\/p>\n<h2>Better integration with STM32CubeMX<\/h2>\n<p>In recognition of the growing popularity of the STM32 devices, VisualGDB now supports importing STM32CubeMX projects out-of-the-box. Simply point to a gpdsc file generated by STM32CubeMX and VisualGDB will\u00a0automatically\u00a0convert it into a\u00a0Visual Studio project and will automatically update it if the original gpdsc project changes:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cubemx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12557\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cubemx.png\" alt=\"cubemx\" width=\"822\" height=\"642\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cubemx.png 822w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cubemx-300x234.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/cubemx-768x600.png 768w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/p>\n<h2>Static and dynamic code analysis<\/h2>\n<p>VisualGDB 5.3\u00a0also supports static code analysis powered by Clang and dynamic code analysis of Linux projects powered by Valgrind (Custom edition and higher).\u00a0<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/02-break.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12502\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/02-break.png\" alt=\"02-break\" width=\"680\" height=\"550\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/02-break.png 680w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/02-break-300x243.png 300w\" sizes=\"(max-width: 680px) 100vw, 680px\" \/><\/a><\/p>\n<h2>Embedded Integration Tests<\/h2>\n<p>If adding a unit test framework to your embedded project sounds like too much work, VisualGDB offers a much more\u00a0lightweight solution to\u00a0keep your code health in check. Simply use the debugger to alter your program behavior, record its responses and insert\u00a0checks\u00a0validating the return codes, function execution times and the order of events:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12135\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1.png\" alt=\"progress\" width=\"1141\" height=\"744\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1.png 1141w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1-300x196.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1-768x501.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/08\/progress-1-1024x668.png 1024w\" sizes=\"(max-width: 1141px) 100vw, 1141px\" \/><\/a><\/p>\n<h3>Test coverage for Linux tests<\/h3>\n<p>VisualGDB 5.3 supports integration with gcov.\u00a0Simply\u00a0enable coverage instrumentation via VisualGDB Project Properties and you will be able to see detailed reports on covered functions, blocks and lines for both remotely built\u00a0projects and projects using a cross-compiler:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12500\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport.png\" alt=\"03-covreport\" width=\"1179\" height=\"758\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport.png 1179w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport-300x193.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport-768x494.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/09\/03-covreport-1024x658.png 1024w\" sizes=\"(max-width: 1179px) 100vw, 1179px\" \/><\/a><\/p>\n<h2>Team Settings Engine<\/h2>\n<p>If you ever\u00a0had to synchronize\u00a0VisualGDB settings like toolchain definitions\u00a0between multiple machines,\u00a0we have good news for you. The new Team Settings Engine lets you\u00a0instantly publish common settings to a\u00a0shared folder on your network and immediately make them available to other team members:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/07\/toolchains.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-11797\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/07\/toolchains.png\" alt=\"toolchains\" width=\"686\" height=\"493\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/07\/toolchains.png 686w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/07\/toolchains-300x216.png 300w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/a><\/p>\n<p>This feature works on top of the\u00a0regular Windows file permissions and uses\u00a0intuitive XML files to store the shared settings, so you can check them in under source control and\u00a0track the changes.<\/p>\n<h3>Bonus: Updated GUI<\/h3>\n<p>If you have tried VisualGDB 5.3 (or RC) before, don&#8217;t forget to update to\u00a0the final release. It includes numerous small improvements to\u00a0various components and better WPF-based versions of several common\u00a0user interfaces that had known issues on high-DPI screens:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/term.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12558\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/term.png\" alt=\"term\" width=\"794\" height=\"679\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/term.png 794w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/term-300x257.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2017\/10\/term-768x657.png 768w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><\/a><\/p>\n<p>You can find a detailed list of changes in the <a href=\"https:\/\/visualgdb.com\/history\/\">changelog<\/a>.<\/p>\n<h2>Try it out<\/h2>\n<p>VisualGDB 5.3 is out.\u00a0Give it a try <a href=\"https:\/\/visualgdb.com\/download\">here<\/a> and don&#8217;t hesitate to\u00a0send us your feedback via the <a href=\"https:\/\/sysprogs.com\/support\/\">support page<\/a> or <a href=\"https:\/\/sysprogs.com\/w\/forums\/forum\/visualgdb\/\">forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we\u00a0happy to announce the final release of VisualGDB 5.3. Over the past several months and\u00a08 preview builds we have introduced and fine-tuned multiple\u00a0usability-focused improvements to your cross-platform development workflow and I will give you a quick overview of them in this post.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/12552"}],"collection":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/comments?post=12552"}],"version-history":[{"count":1,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/12552\/revisions"}],"predecessor-version":[{"id":12559,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/12552\/revisions\/12559"}],"wp:attachment":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/media?parent=12552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/categories?post=12552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/tags?post=12552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}