{"id":17260054,"url":"https://github.com/awulkiew/graphical-debugging-vscode","last_synced_at":"2025-04-14T07:08:46.325Z","repository":{"id":37593450,"uuid":"419874603","full_name":"awulkiew/graphical-debugging-vscode","owner":"awulkiew","description":"GraphicalDebugging extension for Visual Studio Code","archived":false,"fork":false,"pushed_at":"2024-08-17T22:44:50.000Z","size":2909,"stargazers_count":40,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T07:08:38.736Z","etag":null,"topics":["array","boost","debug","debugger-visualizers","debugging","debugging-tools","extension","geometry","plot","polygon","stl","vector","visual-studio-code"],"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/awulkiew.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}},"created_at":"2021-10-21T20:57:14.000Z","updated_at":"2025-02-01T18:58:25.000Z","dependencies_parsed_at":"2024-08-06T00:16:36.303Z","dependency_job_id":null,"html_url":"https://github.com/awulkiew/graphical-debugging-vscode","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awulkiew%2Fgraphical-debugging-vscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awulkiew%2Fgraphical-debugging-vscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awulkiew%2Fgraphical-debugging-vscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awulkiew%2Fgraphical-debugging-vscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awulkiew","download_url":"https://codeload.github.com/awulkiew/graphical-debugging-vscode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248837281,"owners_count":21169374,"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":["array","boost","debug","debugger-visualizers","debugging","debugging-tools","extension","geometry","plot","polygon","stl","vector","visual-studio-code"],"created_at":"2024-10-15T07:47:04.122Z","updated_at":"2025-04-14T07:08:46.301Z","avatar_url":"https://github.com/awulkiew.png","language":"TypeScript","readme":"# Graphical Debugging\n### Extension for Visual Studio Code\n\n[![VS Marketplace](https://vsmarketplacebadges.dev/version-short/AdamWulkiewicz.graphicaldebugging-vscode.svg)](https://marketplace.visualstudio.com/items?itemName=AdamWulkiewicz.graphicaldebugging-vscode)\n[![Installs](https://vsmarketplacebadges.dev/installs-short/AdamWulkiewicz.graphicaldebugging-vscode.svg)](https://marketplace.visualstudio.com/items?itemName=AdamWulkiewicz.graphicaldebugging-vscode)\n[![Rating](https://vsmarketplacebadges.dev/rating-short/AdamWulkiewicz.graphicaldebugging-vscode.svg)](https://marketplace.visualstudio.com/items?itemName=AdamWulkiewicz.graphicaldebugging-vscode)\n![License](https://img.shields.io/github/license/awulkiew/graphical-debugging-vscode.svg)\n[![Donate](https://img.shields.io/badge/Donate-_-yellow.svg)](https://awulkiew.github.io/donate)\n\nThis extension allows to display graphical representation of variables during debugging.\n\n![Graphical Debugging](resources/extension.png)\n\n#### Download\n\nYou can download this extension from [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=AdamWulkiewicz.graphicaldebugging-vscode) or [GitHub](https://github.com/awulkiew/graphical-debugging-vscode/releases).\n\n#### Instructions\n\n1. Place a breakpoint\n2. Start debugging\n3. After clicking + in Graphical Watch write the name of a variable\n\n#### Supported types\n\n##### C/C++ (cppdbg, cppvsdbg, lldb, cortex-debug)\n\n* Containers of values, points and other geometries\n  * C-style array\n  * STL: `array`, `deque`, `list`, `span`, `vector`\n  * Boost.Array: `array`\n  * Boost.Container: `static_vector`, `vector`\n  * Boost.Geometry: `varray`\n* 1D values\n  * STL: `duration`\n  * Boost.Chrono: `duration`   \n  * Boost.Units: `quantity`   \n* 2D values/geometries\n  * STL: `complex`, `pair`\n  * Boost.Geometry: `box`, `linestring`, `multi_linestring`, `multi_point`, `multi_polygon`, `point`, `point_xy`, `point_xyz`, `polygon`, `ring`, `segment`\n  * Boost.Polygon: `point_data`, `polygon_data`, `polygon_with_holes_data`, `rectangle_data`, `segment_data`\n\n##### C# (coreclr)\n\n* Containers of values, points and other geometries\n  * Array\n  * System.Collections.Generic: `List`\n* 2D values/geometries\n  * System.Drawing: `Point`\n\n##### Java (java)\n\n* Containers of values, points and other geometries\n  * Array\n  * java.util: `ArrayList`, `LinkedList`, `Vector`\n* 1D values\n  * java.lang: `Byte`, `Double`, `Float`, `Integer`, `Long`, `Short`\n* 2D values/geometries\n  * java.awt: `Point`\n  * java.awt.geom: `Point2D.Double`, `Point2D.Float`\n\n##### Javascript (chrome, msedge, node, pwa-node, pwa-chrome, pwa-msedge)\n\n* Containers of values, points and other geometries\n  * `Array`\n\n##### Python (python, debugpy, Jupyter Notebook / Python Kernel Debug Adapter)\n\n* Containers of values, points and other geometries\n  * `deque`, `list`\n  * llist: `dllist`, `sllist`\n  * numpy: `array`\n* 2D geometries\n  * `tuple`\n  * Shapely: `GeometryCollection`, `LinearRing`, `LineString`, `MultiLineString`, `MultiPoint`, `MultiPolygon`, `Point`, `Polygon`\n  * SymPy: `Point2D`, `Polygon`, `Segment2D`\n\n##### Ruby (rdbg)\n\n* Containers of values, points and other geometries\n  * `Array`\n* 2D geometries\n  * RGeo: `CAPIPointImpl`, `CAPILineImpl`, `CAPILineStringImpl`, `CAPILinearRingImpl`, `CAPIPolygonImpl`, `CAPIMultiPointImpl`, `CAPIMultiLineStringImpl`, `CAPIMultiPolygonImpl`, `BoundingBox`\n\n#### Advanced\n\n##### User-defined types\n\nYou can define your types in `*.json` files which can be placed e.g. in the workspace. The following file defines `Point` C++ type containing `x` and `y` members.\n```json\n{\n    \"name\": \"graphicaldebugging\",\n    \"language\": \"cpp\",\n    \"types\": [\n        {\n            \"type\": \"Point\",\n            \"kind\": \"point\",\n            \"coordinates\": {\n                \"x\": \"$this.x\",\n                \"y\": \"$this.y\"\n            }\n        }\n    ]\n}\n```\n\nFor more examples see `*.json` files [here](https://github.com/awulkiew/graphical-debugging-vscode/tree/master/resources).\n\nThe directory containing user files can be defined in settings, by default it is the workspace directory of currently debugged program.\n\n##### Type aliases\n\nGDB and LLDB debuggers [don't report](https://github.com/microsoft/vscode-cpptools/issues/3038) original C++ types for variables created from type alias/typedef but original types are needed for this extension to work correctly. Fortunately the implementation of [this proposal](https://github.com/microsoft/MIEngine/issues/1236) allows to unroll the types automatically.\n\nIf you choose to define aliases manually, e.g. automatic unrolling doesn't work for you, you can do it in the same `*.json` files as described above. For example the following aliases:\n```c++\nnamespace bg = boost::geometry;\nusing point_t = bg::model::point\u003cdouble, 2, bg::cs::cartesian\u003e;\nusing polygon_t = bg::model::polygon\u003cpoint_t\u003e;\n```\ncould be defined as follows:\n```json\n{\n    \"name\": \"graphicaldebugging\",\n    \"language\": \"cpp\",\n    \"aliases\": [\n        {\n            \"name\": \"point_t\",\n            \"type\": \"boost::geometry::model::point\u003cdouble,2,boost::geometry::cs::cartesian\u003e\"\n        },\n        {\n            \"name\": \"polygon_t\",\n            \"type\": \"boost::geometry::model::polygon\u003cboost::geometry::model::point\u003cdouble,2,boost::geometry::cs::cartesian\u003e,true,true,std::vector,std::vector,std::allocator,std::allocator\u003e\"\n        }\n    ]\n}\n```\n\n#### Known issues\n\n* You may experience problems with CodeLLDB because [simple expressions](https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md#expressions) are enabled by default. If some of the variables are not visualized you could try enabling [native expressions](https://github.com/vadimcn/codelldb/blob/master/MANUAL.md#starting-a-new-debug-session) in the launch.json.\n* Holes of geographic polygons may be visualized incorrectly. This is a side effect of a workaround for an [issue in Plotly](https://github.com/plotly/plotly.js/issues/6044) which doesn't support geographic polygons with holes.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawulkiew%2Fgraphical-debugging-vscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawulkiew%2Fgraphical-debugging-vscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawulkiew%2Fgraphical-debugging-vscode/lists"}