{"id":22480,"date":"2018-10-31T02:18:27","date_gmt":"2018-10-31T01:18:27","guid":{"rendered":"https:\/\/sysprogs.com\/w\/?p=22480"},"modified":"2020-04-21T19:29:06","modified_gmt":"2020-04-21T18:29:06","slug":"introducing-codejumps","status":"publish","type":"post","link":"https:\/\/sysprogs.com\/w\/introducing-codejumps\/","title":{"rendered":"Introducing CodeJumps"},"content":{"rendered":"<p>Today we proudly announce the release of VisualGDB 5.4 Preview 8 introducing CodeJumps &#8211; the new powerful code navigation feature that greatly simplifies navigating the structure of your C\/C++ projects:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22483 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-1.png\" alt=\"calls\" width=\"562\" height=\"285\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-1.png 562w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-1-300x152.png 300w\" sizes=\"(max-width: 562px) 100vw, 562px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>CodeJumps are powered by the VisualGDB&#8217;s Clang IntelliSense engine that is capable of instantly finding definitions, references and relations between various parts of huge projects. When enabled via Clang IntelliSense Settings, it will display brief statistics about various parts of your program near their declarations and definitions:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/refs.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22482 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/refs.png\" alt=\"refs\" width=\"601\" height=\"451\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/refs.png 601w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/refs-300x225.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<p>Clicking on a summary line will display the full list of references to that function, type or variable in the entire project. VisualGDB can recognize which of the references involve modifying the variable and it will show them in a different color:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/tick.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22484 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/tick.png\" alt=\"tick\" width=\"959\" height=\"261\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/tick.png 959w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/tick-300x82.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/tick-768x209.png 768w\" sizes=\"(max-width: 959px) 100vw, 959px\" \/><\/a><\/p>\n<p>The references are just the beginning &#8211; CodeJumps also lets you explore the class hierarchies:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/class.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22485 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/class.png\" alt=\"class\" width=\"530\" height=\"264\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/class.png 530w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/class-300x149.png 300w\" sizes=\"(max-width: 530px) 100vw, 530px\" \/><\/a><\/p>\n<p>Overridden virtual methods:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/override.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22486 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/override.png\" alt=\"override\" width=\"645\" height=\"258\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/override.png 645w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/override-300x120.png 300w\" sizes=\"(max-width: 645px) 100vw, 645px\" \/><\/a><\/p>\n<p>Calls between functions or methods:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22488 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-2.png\" alt=\"calls\" width=\"621\" height=\"443\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-2.png 621w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/calls-2-300x214.png 300w\" sizes=\"(max-width: 621px) 100vw, 621px\" \/><\/a><\/p>\n<p>And the relations between code and data:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/data.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22487 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/data.png\" alt=\"data\" width=\"592\" height=\"177\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/data.png 592w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/data-300x90.png 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/a><\/p>\n<p>By the way, if your project C-style function pointers, CodeJumps can quickly discover all functions explicitly assigned to a specific pointer:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22489 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl.png\" alt=\"impl\" width=\"1039\" height=\"453\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl.png 1039w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl-300x131.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl-768x335.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl-1024x446.png 1024w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/impl-1038x453.png 1038w\" sizes=\"(max-width: 1039px) 100vw, 1039px\" \/><\/a><\/p>\n<p>We have also plugged CodeJumps into the code tooltips. Simply click the &#8220;Show Advanced View&#8221; link at the bottom of the tooltip and it will turn into a CodeJumps popup:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/advanced.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22490 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/advanced.png\" alt=\"advanced\" width=\"614\" height=\"115\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/advanced.png 614w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/advanced-300x56.png 300w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/a><\/p>\n<p>Once you switch it to show class hierarchies, call trees, or any other information, hovering the mouse over any reference to any compatible entity will display the structured information about it instead of the regular tooltip:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/popup.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22491 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/popup.png\" alt=\"popup\" width=\"700\" height=\"240\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/popup.png 700w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/popup-300x103.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<h2>Global Symbol List<\/h2>\n<p>We have also added a new window that lets you quickly browse through all symbols in even huge solutions. You can invoke it by clicking on the magnifying glass icon at the top of the source file editor:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/symlist.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22492 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/symlist.png\" alt=\"symlist\" width=\"773\" height=\"196\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/symlist.png 773w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/symlist-300x76.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/symlist-768x195.png 768w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/a><\/p>\n<p>It allows instantly browsing through all classes, fields, variables and functions defined anywhere inside the solution:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/allsyms.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22493 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/allsyms.png\" alt=\"allsyms\" width=\"863\" height=\"551\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/allsyms.png 863w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/allsyms-300x192.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/allsyms-768x490.png 768w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/a><\/p>\n<p>The new global symbol list window includes convenient name- and type-based filters that allow easily locating the symbol you were looking for:<\/p>\n<p><a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/types.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-22495 size-full\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/types.png\" alt=\"types\" width=\"864\" height=\"551\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/types.png 864w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/types-300x191.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/types-768x490.png 768w\" sizes=\"(max-width: 864px) 100vw, 864px\" \/><\/a><\/p>\n<h2>Try it out<\/h2>\n<p>You can download VisualGDB 5.4 Preview 8 on the\u00a0<a href=\"http:\/\/visualgdb.com\/download\/\">download page<\/a>. If you have any feedback, don\u2019t hesitate to use our\u00a0<a href=\"https:\/\/sysprogs.com\/support\/\">support form<\/a>\u00a0or the\u00a0<a href=\"https:\/\/sysprogs.com\/w\/forums\/forum\/visualgdb\/\">VisualGDB forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we proudly announce the release of VisualGDB 5.4 Preview 8 introducing CodeJumps &#8211; the new powerful code navigation feature that greatly simplifies navigating the structure of your C\/C++ projects:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","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\/22480"}],"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=22480"}],"version-history":[{"count":4,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/22480\/revisions"}],"predecessor-version":[{"id":22498,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/22480\/revisions\/22498"}],"wp:attachment":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/media?parent=22480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/categories?post=22480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/tags?post=22480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}