{"id":7487,"date":"2021-09-20T08:31:42","date_gmt":"2021-09-20T15:31:42","guid":{"rendered":"https:\/\/visualgdb.com\/w\/?p=7487"},"modified":"2021-10-26T13:10:35","modified_gmt":"2021-10-26T20:10:35","slug":"code-explorer-globals","status":"publish","type":"post","link":"https:\/\/visualgdb.com\/documentation\/codeexplorer\/globals\/","title":{"rendered":"Code Explorer &#8211; Globals"},"content":{"rendered":"<p>This page provides a detailed description of the <strong>Globals<\/strong> view of Solution Explorer.<\/p>\n<h2>Contents<\/h2>\n<p><a href=\"#overview\">Overview<\/a><br \/>\n<a href=\"#details\">Details<\/a><br \/>\n<a href=\"#filters\">Filters<\/a><br \/>\n<a href=\"#settings\">Settings<\/a><br \/>\n<a href=\"#templates\">C++ Templates<\/a><\/p>\n<h2><a id=\"overview\"><\/a>Overview<\/h2>\n<p>The Globals View of Code Explorer displays various information about the C\/C++ symbols from the entire solution. The symbols can be displayed either as a list <strong>(1)<\/strong> or a tree <strong>(2)<\/strong>.<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/globals.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7488\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/globals.png\" alt=\"\" width=\"429\" height=\"441\" \/><\/a>The following controls can be used to customize the view:<\/p>\n<ul>\n<li>The <strong>Show Favorites Only<\/strong> button <strong>(3)<\/strong> can restrict the view to symbols marked as favorite <strong>(8) <\/strong>via any of the Code Explorer views.<\/li>\n<li>The <strong>Details<\/strong> button <strong>(4)<\/strong> allows showing or hiding the <a href=\"#details\">Details<\/a> view<\/li>\n<li>The <strong>Settings<\/strong> button <strong>(5)<\/strong> allows customizing various <a href=\"#settings\">settings<\/a><\/li>\n<li>The <strong>Type filters<\/strong> <strong>(6)<\/strong> allow restricting the view to the specific types of symbols (e.g. only virtual methods)<\/li>\n<li>The <strong>Filter<\/strong> box <strong>(7)<\/strong> allows quickly locating the items that contain the entered string. Press <strong>Enter<\/strong> in the filter box to quickly expand paths to all matching nodes.<\/li>\n<\/ul>\n<h2><a id=\"filters\"><\/a>Filters<\/h2>\n<p>You can use the Type filters to only show the symbols of the selected types:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/filters-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7489\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/filters-2.png\" alt=\"\" width=\"427\" height=\"544\" \/><\/a>Note that holding <strong>Shift<\/strong> while clicking on a filter automatically disables all other filters.<\/p>\n<h2><a id=\"details\"><\/a>Details View<\/h2>\n<p>The Details view is shown in a separate dockable window (see <a href=\"\/documentation\/codeexplorer\/outline\/details\">Outline Details<\/a>). It provides detailed information about the currently selected Code Explorer entity <strong>(1)<\/strong>. You can also hold <strong>Shift<\/strong> or <strong>Ctrl<\/strong> to select multiple entities at the same time.<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/details-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7491\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/details-1.png\" alt=\"\" width=\"430\" height=\"336\" \/><\/a>The Details view can be customized to show all relations, or specific relations only <strong>(2)<\/strong>, filtered by entity name, and configured <strong>(3)<\/strong> to display the fully qualified names of the entities, function argument types, and template arguments. You can also control whether the top-level detail nodes are expanded by default. The <strong>Load One Level<\/strong> button <strong>(5)<\/strong> allows quickly loading details for all unexpanded nodes:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/export.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7492\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/export.png\" alt=\"\" width=\"1356\" height=\"340\" \/><\/a>You can use it to select a particular entity in Code Explorer <strong>(1)<\/strong>, quickly pick the desired relation type <strong>(2)<\/strong>, expand it multiple times until all the nodes have been loaded <strong>(3)<\/strong> and quickly copy the found relations to Clipboard.<\/p>\n<h2><a id=\"settings\"><\/a>Settings<\/h2>\n<p>The Globals view in Code Explorer allows configuring the following settings:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/config.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7493\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/config.png\" alt=\"\" width=\"542\" height=\"219\" \/><\/a><\/p>\n<table style=\"border-collapse: collapse; width: 99.9999%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 33.3333%;\">Setting<\/td>\n<td style=\"width: 33.3333%;\">When enabled<\/td>\n<td style=\"width: 33.3333%;\">When disabled<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Show window on startup<\/td>\n<td style=\"width: 33.3333%;\">The Code Explorer window will automatically appear when loading VisualGDB-based projects.<\/td>\n<td style=\"width: 33.3333%;\">The Code Explorer will only appear when opened via View-&gt;VisualGDB Code Explorer.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Update symbols when the source code is changed<\/td>\n<td style=\"width: 33.3333%;\">Changing a source code and clicking on Code Explorer will automatically rebuild the symbol cache. This may take considerable time if a commonly used header file was modified.<\/td>\n<td style=\"width: 33.3333%;\">Changing a source file and going back to Code Explorer will display the outdated information from the previous cache. Code Explorer will show a warning that the cache is out of date.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Show symbols without definition<\/td>\n<td style=\"width: 33.3333%;\">Functions\/classes that are declared, but not defined in the code (e.g. <strong>_exit()<\/strong>) will be shown.<\/td>\n<td style=\"width: 33.3333%;\">Only functions\/classes that have definitions\/implementations in the code will appear in the symbol list.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Skip function arguments when applying filter<\/td>\n<td style=\"width: 33.3333%;\">E.g. &#8220;sum(int, int)&#8221; will not match the &#8220;int&#8221; filter<\/td>\n<td style=\"width: 33.3333%;\">E.g. &#8220;sum(int, int)&#8221; will match the &#8220;int&#8221; filter<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Show function arguments<\/td>\n<td style=\"width: 33.3333%;\">E.g. &#8220;sum(int, int)&#8221; will be shown as &#8220;sum(int, int)&#8221;<\/td>\n<td style=\"width: 33.3333%;\">E.g. &#8220;sum(int, int)&#8221; will be shown as &#8220;sum()&#8221;<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\">Show entity qualifiers<\/td>\n<td style=\"width: 33.3333%;\"><strong>Classes, structures, unions, static<\/strong>\/<strong>virtual<\/strong> methods, <strong>namespaces<\/strong> and <strong>typedefs<\/strong> will be prefixed by the corresponding keyword.<\/td>\n<td style=\"width: 33.3333%;\">Only <strong>const<\/strong> methods, will be shown with a special keyword.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can also find an automatically updated detailed list of VisualGDB settings on <a href=\"https:\/\/visualgdb.com\/settings\/\">this page<\/a>.<\/p>\n<h2><a id=\"templates\"><\/a>C++ Templates<\/h2>\n<p>Because different template specializations can behave completely differently, VisualGDB tracks the relations for each specialization separately. E.g. searching for incoming calls to the constructor\u00a0 of <strong>std::vector<\/strong> <strong>(1)<\/strong> will show the discovered calls for each specialization <strong>(2)<\/strong> separately: <a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/multi.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7494\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2021\/09\/multi.png\" alt=\"\" width=\"1084\" height=\"307\" \/><\/a>Note that in order to meaningfully distinguish different specializations, you would need to enable to specialization display <strong>(4)<\/strong> in the Details view. Enabling scope display <strong>(3)<\/strong> is recommended to understand the scope of the discovered callers.<\/p>\n<p>You can quickly reveal the entire call tree by repeatedly using the <strong>Load One Level<\/strong> button <strong>(5)<\/strong>. It works reasonably fast. E.g. searching the entire <a href=\"https:\/\/github.com\/sysprogs\/cmake\">CMake<\/a> code base (~64K symbols) for incoming calls to 1000 different methods only takes about a second. You can then quickly navigate the results using the <strong>Filter<\/strong> view, or export them to Clipboard using the <strong>Copy All<\/strong> context menu command.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This page provides a detailed description of the Globals view of Solution Explorer. Contents Overview Details Filters Settings C++ Templates<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239],"tags":[236,52],"_links":{"self":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/7487"}],"collection":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/comments?post=7487"}],"version-history":[{"count":2,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/7487\/revisions"}],"predecessor-version":[{"id":7496,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/7487\/revisions\/7496"}],"wp:attachment":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/media?parent=7487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/categories?post=7487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/tags?post=7487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}