{"id":28042533,"url":"https://github.com/novemus/stack-scopes","last_synced_at":"2025-07-17T18:05:29.747Z","repository":{"id":154286782,"uuid":"414161086","full_name":"novemus/stack-scopes","owner":"novemus","description":"Analyzing C/C++ Stack Snapshots.","archived":false,"fork":false,"pushed_at":"2025-04-12T15:06:56.000Z","size":12240,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-11T14:48:43.849Z","etag":null,"topics":["c-plus-plus","cpp","debug","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novemus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-06T10:10:01.000Z","updated_at":"2025-04-13T01:28:22.000Z","dependencies_parsed_at":"2023-04-27T07:16:53.436Z","dependency_job_id":null,"html_url":"https://github.com/novemus/stack-scopes","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fstack-scopes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fstack-scopes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fstack-scopes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fstack-scopes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novemus","download_url":"https://codeload.github.com/novemus/stack-scopes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253584480,"owners_count":21931545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cpp","debug","vscode","vscode-extension"],"created_at":"2025-05-11T14:48:49.780Z","updated_at":"2025-05-11T14:48:50.257Z","avatar_url":"https://github.com/novemus.png","language":"TypeScript","readme":"# README\n\nThe `stack-scopes` is extension for [Visual Studio Code](https://code.visualstudio.com). It provides additional `Scopes` view on the Debug side bar for `cppdbg`, `cppvsdbg` and `lldb` debug profiles and offers `Stack Graph` window for convenient analysis of application stacks.\n\n## Сapabilities\n\n* [Build](#scopes-view) scopes tree view.\n* [Highlight](#stack-graph) shared scopes on the stack graph.\n* [Inspect](#unfold-frame-context) any number of frame contexts.\n* [Reveal](#reveal-reference-code) reference source code.\n* [Evaluate](#evaluate-dynamic-arrays-elements) elements of dynamically allocated arrays.\n* [Search](#search-for-references-to-variables) for references to variables.\n* [Work](#graph-drawing-mode) only with the selected stacks on the graph.\n* [Highlight](#compare-two-dumps) matches of two dumps.\n\n\n## Scopes view ##\n\nThe `Scopes` view represents stack frames grouped by locations of their scopes. This allows you to quickly find stack frames of interesting code, especially for snapshots with a large number of threads, check for mutual access to a specific context, find recursive calls, watch several frame scopes at the same time.\n\n![Scopes](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/scopes.gif)\n\n## Stack Graph ##\n\nThe main purpose of the `Stack Graph` window is to provide a possibility to analyze stacks for mutual use of modules, functions and even objects. For this you can apply color highlighting to elements you are interested in. Just press the `ctrl` key or the right mouse button and click the desired item on the stack graph. Also you can click appropriate icon on an item of the `Scopes` or `References` tree view. Click again to cancel the highlighting of the element.\n\n![Graph](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/graph.gif)\n\n## Unfold frame context ##\n\nYou can unfold the context of any frame on the scope tree or right on the graph. Click on the frame badge to expand or collapse the context widget.\n\n![Unfold](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/unfold.gif)\n\n## Reveal reference code ##\n\nBoth the `Scopes` view and the `Stack Graph` window support revealing reference code in the source files when clicking on frame items. To achieve this on the `Stack Graph`, you need to split the editor space and move the graph window to a secondary cell.\n\n![Reveal](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/reveal.gif)\n\n## Evaluate dynamic arrays elements ##\n\nBy default, you see only first element of the dynamically allocated arrays in the scope tree, because the debugger does not know the size of the array. You can evaluate following possible elements of the array variable under its tree item.\n\n![Evaluate](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/evaluate.gif)\n\n## Search for references to variables ##\n\nYou can search for references to any variable in the frame scopes, as well as inside other variables accessible from stack frames. The search results depend on the quality of the debugging information and also on how the variables are [represented](https://code.visualstudio.com/docs/cpp/natvis) by the debugging adapter. Also, the search is not performed in manually [evaluated](#evaluate-dynamic-arrays-elements) variables.\n\n![Search](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/search.gif)\n\n## Graph drawing mode ##\n\nIt is possible to reduce the number of stacks on the graph. Just highlight some stacks and change the drawing mode by switching the toggle in the top right corner of the graph window.\n\n![Minimize](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/minimize.gif)\n\n## Compare two dumps ##\n\nNow you can compare the stacks of two core dumps got from some process and highlight the matches on the `Stack Graph`. To do this, run debugging sessions for your core dumps, open graph window of some session, then select the session to compare using `Colorize Matches` button in the top right corner of the graph window.\n\n![Compare](https://raw.githubusercontent.com/novemus/stack-scopes/master/resources/compare.gif)\n\n## Requirements\n\nDepends on `ms-vscode.cpptools` extension.\n\n## Installation\n\nTo install latest version of the extension from source, in addition to [Visual Studio Code](https://code.visualstudio.com), [Git](https://git-scm.com) and [Node](https://nodejs.org) must be installed on your system.\n\n1. Clone `stack-scopes` repository.\n```console\ngit clone https://github.com/novemus/stack-scopes.git \u0026\u0026 cd stack-scopes\n```\n2. Install `vsce` package.\n```console\nnpm install -g vsce\n```\n3. Build `vsix` package.\n```console\nnpm install \u0026\u0026 vsce package -o stack-scopes.vsix\n```\n4. Install `stack-scopes` vsix package.\n```console\ncode --install-extension stack-scopes.vsix\n```\n\n## Bugs and improvements\n\nFeel free to [report](https://github.com/novemus/stack-scopes/issues) bugs and [suggest](https://github.com/novemus/stack-scopes/issues) new features and improvements. \n\n## License\n\nMIT © Novemus Band\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovemus%2Fstack-scopes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovemus%2Fstack-scopes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovemus%2Fstack-scopes/lists"}