{"id":13694107,"url":"https://github.com/aarzilli/gdlv","last_synced_at":"2025-05-14T16:15:56.732Z","repository":{"id":49501548,"uuid":"66839994","full_name":"aarzilli/gdlv","owner":"aarzilli","description":"GUI frontend for Delve","archived":false,"fork":false,"pushed_at":"2025-03-26T14:40:35.000Z","size":25011,"stargazers_count":1366,"open_issues_count":8,"forks_count":51,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-04-13T01:57:09.060Z","etag":null,"topics":["debugger","delve","go","golang","gui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aarzilli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","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},"funding":{"github":"aarzilli"}},"created_at":"2016-08-29T12:01:56.000Z","updated_at":"2025-04-12T14:00:05.000Z","dependencies_parsed_at":"2023-10-16T03:02:29.400Z","dependency_job_id":"1c980fdf-5748-46da-9b08-871624370c79","html_url":"https://github.com/aarzilli/gdlv","commit_stats":{"total_commits":518,"total_committers":10,"mean_commits":51.8,"dds":"0.019305019305019266","last_synced_commit":"edc2b7f9c0c48dd1d7cadb7f99b9139a94d3bf3d"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarzilli%2Fgdlv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarzilli%2Fgdlv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarzilli%2Fgdlv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aarzilli%2Fgdlv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aarzilli","download_url":"https://codeload.github.com/aarzilli/gdlv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654049,"owners_count":21140235,"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":["debugger","delve","go","golang","gui"],"created_at":"2024-08-02T17:01:24.481Z","updated_at":"2025-04-13T01:57:37.378Z","avatar_url":"https://github.com/aarzilli.png","language":"Go","funding_links":["https://github.com/sponsors/aarzilli"],"categories":["开源类库","Repositories","Open source library","Go","Gio Core","Program"],"sub_categories":["调试","Debugging","Software built with Gio","Go"],"readme":"![Go Build](https://github.com/aarzilli/gdlv/actions/workflows/build.yml/badge.svg)\n\nGdlv is a graphical frontend to [Delve](https://github.com/go-delve/delve) for Linux, Windows and macOS.\n\n[Demo video here](https://aarzilli.github.io/gdlv/doc/screencast.webm).\n\n![Screenshot](https://raw.githubusercontent.com/aarzilli/gdlv/master/doc/screen.png)\n\n![Gdlv on macOS](https://raw.githubusercontent.com/aarzilli/gdlv/master/doc/sierra-screen.png)\n\n# Setup\n\nFirst install the current version of Delve, following [Delve's install instructions](https://github.com/go-delve/delve/tree/master/Documentation/installation).\n\nOnce Delve is installed, clone the repository and use `go install` to install gdlv:\n\n```\n$ git clone https://github.com/aarzilli/gdlv\n$ cd gdlv\n$ go install\n```\n\nIf you are on Go 1.16 or later you can also use the new global install command, without cloning the repository first:\n\n```\n$ go install github.com/aarzilli/gdlv@latest\n```\n\nUse Ctrl+plus and Ctrl+minus (On macOS Cmd+plus and Cmd+minus), or `config zoom 1.5` to change font size. You can reset font size with Ctrl+0 (on macOS Cmd+0). See `help` for a list of available commands.\n\n## Other backends\n\nOn Linux and Windows gdlv uses [shiny](https://github.com/golang/exp/tree/master/shiny) to draw its window and receive mouse and keyboard input from the Operating System. On macOS [gio](https://gioui.org/) is used instead. This behavior can be changed using build tags:\n\n```\ngo install -tags=nucular_gio github.com/aarzilli/gdlv@latest\n```\n\nwill force gdlv to use nucular_gio everywhere, conversely `-tags=nucular_shiny` will select the shiny backend on macOS. Additionally, on macOS, `-tags=nucular_shiny,metal` can be used to make shiny draw using the metal API.\n\n# News\n\n## 2024-09-24 / Version 1.13\n* Added way to see captured variables inside function closures\n\n## 2024-03-04 / Version 1.12\n* Function names in the stacktrace window is shortened by default\n* Add next-instruction command\n* Make the text in the variables window selectable\n* Miscellaneous bug fixes\n\n## 2023-09-24 / Version 1.11\n* Better display of suspended breakpoints\n* Add libraries command\n* When printing a channel also print a list of goroutines waiting on it\n\n## 2023-06-13 / Version 1.10\n* Better display of long string variables in the variables window\n* Added formatting directives to `print` command and variables window (see `help print`)\n* Support multi-target debugging where Delve supports it\n* Miscellaneous bug fixes\n\n## 2023-01-05 / Version 1.9\n* Show an indicator when the current frame changes between continues\n* Miscellaneous bug fixes\n\n## 2022-05-13 / Version 1.8\n* Extended type shortening rules to support simple generic types\n* Miscellaneous bug fixes\n\n## 2021-09-23 / Version 1.7\n* Add watchpoint support\n* Add `Go doc` menu item, in the variables panel contextual menu, to quickly call `go doc` for a variable's type\n* Add hit count conditions for breakpoints\n* Add `call` command\n* Add goroutines filtering rules\n\n## 2021-04-09 / Version 1.6\n* Print goroutine wait wait reason and wait time when available\n* Add dump command, creates core dump of the attached process\n\n## 2021-01-10 / Version 1.5\n* Better disassembly view\n* File descriptor redirects\n* Miscellaneous bug fixes\n\n## 2020-04-25 / Version 1.4\n* Support reverse step/next/stepout\n* Support logical breakpoints\n* Fixes copying from scrollback editor\n* Fixes listing recentering on current line after a target resume\n\n## 2020-03-27 / Version 1.3\n* Show goroutine labels\n* Support interrupting a recording\n\n## 2020-01-28 / Version 1.2\n* Highlight changed variables in a different color\n* Add source code links in scrollback\n\n## 2019-11-22 / Version 1.1\n* Added option to filter the goroutines window to only the goroutines matching a specified pattern.\n* Added `-r` option to the restart command which will rerecord the target (if it was recorded), also added the `flaky` script which runs the program repeatedly (rerecording it) until it hits any breakpoint.\n* Added `-tags` command line option to specify build tags for the target program.\n\n## 2019-10-22 / Version 1.0 tagged\n\n## 2019-06-07\n* Added Starlark as a scripting language\n\n## 2019-05-11\n* Start from main.main instead of runtime.main.\n* Better interface when concurrent breakpoints happen during next, step or stepout.\n\n## 2018-12-14\n* Deferred calls view.\n* Limit number of goroutines that are loaded (improves performance when debugging programs with tens of thousands of goroutines while the goroutines window is opened).\n* Make pastel theme the default theme.\n* Fixed bug handling disabled breakpoints.\n\n## 2018-11-23\n* Fix build on go1.9\n* New, extended, syntax for pinning expressions `dp @f/somefunc/ a` will evaluate `a` in the first frame calling `somefunc`.\n\n## 2018-10-29\n* [Pastel theme](https://raw.githubusercontent.com/aarzilli/gdlv/master/doc/screen-pastel.png)\n\n## 2018-09-26\n* Breakpoint persistence\n* pretty printing of time.Time variables\n* Notification for truncated stack traces\n* Ability to have an expression's value printed to the command window every time a continue command completes.\n\n## 2018-08-26\n* Fixed some race conditions\n* Redesigned detail views, they are now updated while stepping through the code\n\n## 2018-08-16\n* Highlight variable names\n* Expose starting location of goroutines\n* Miscellaneous bug fixes\n\n## 2018-07-02\n* Support font changes\n* Sort variables by declaration line\n* Miscellaneous bug fixes\n\n## 2018-06-13\n* Print return values when stepping out of a function\n* Allow setting breakpoints after the program has exited\n\n## 2018-05-21\n* Implemented path substitution rules\n\n## 2018-02-12\n* Implemented \"Continue to line\"\n* Let `restart` change program arguments\n* Made load parameters configurable\n\n## 2017-12-20\n* Support for upcoming go 1.10.\n* Changed how split windows are implemented (floating windows with docking).\n\n## 2017-09-17\n* \"Find Element\" command: search through a slice or an array for the element matching a given expression.\n* New red theme.\n* Only recompile if one of the source files changed.\n* `step -last` command option to step into the last call on the line.\n* Search command history with Ctrl+R\n\n## 2017-06-29\n* Pinning of expressions to specific execution frames.\n* Keybindings for continue, next, step and stepout\n* Compact visualization for interface values\n\n## 2017-06-04\n* Custom formatters for user defined types.\n* Better executable building for go1.9\n\n## 2017-05-18\n* Better formatting for maps and integer variables.\n\n## 2017-05-07\n* Added core command\n* Support for multiple backends\n* Added \"replay\" startup command, \"checkpoint\" command and \"Checkpoints\" view.\n\n## 2017-03-01\n* Horizontal scrollbars for all panels\n\n## 2017-02-09\n* Goroutines panel will show a breakpoint icon for goroutines stopped at a breakpoint.\n\n## 2017-02-06\n* Implemented selective step into. Right click on a function call on the current line to step into that function call (note: not that function, that *function call*). Also accessible through the `step` command with `step -list`:\n\n![Step Into](https://raw.githubusercontent.com/aarzilli/gdlv/master/doc/stepinto.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarzilli%2Fgdlv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faarzilli%2Fgdlv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faarzilli%2Fgdlv/lists"}