{"id":26119454,"url":"https://github.com/mmontone/slime-breakpoints","last_synced_at":"2025-03-10T12:54:59.160Z","repository":{"id":138624697,"uuid":"471723384","full_name":"mmontone/slime-breakpoints","owner":"mmontone","description":"SLIME extension for setting up breakpoints","archived":false,"fork":false,"pushed_at":"2024-12-24T14:06:32.000Z","size":592,"stargazers_count":17,"open_issues_count":3,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-12-24T15:21:05.437Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmontone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-03-19T14:44:06.000Z","updated_at":"2024-12-24T14:06:36.000Z","dependencies_parsed_at":"2024-01-05T22:14:06.332Z","dependency_job_id":"e9381f36-6074-4af6-abc1-a2fb13601776","html_url":"https://github.com/mmontone/slime-breakpoints","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmontone%2Fslime-breakpoints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmontone%2Fslime-breakpoints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmontone%2Fslime-breakpoints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmontone%2Fslime-breakpoints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmontone","download_url":"https://codeload.github.com/mmontone/slime-breakpoints/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242855901,"owners_count":20196357,"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":[],"created_at":"2025-03-10T12:54:58.541Z","updated_at":"2025-03-10T12:54:59.143Z","avatar_url":"https://github.com/mmontone.png","language":"Emacs Lisp","readme":"# SLIME-BREAKPOINTS\n\nSLIME extension for setting up breakpoints from Emacs.\n\n## Install\n\nℹ️ Please consider using [SLIME :star:](https://github.com/mmontone/slime-star), that comes with this extension preinstalled.\n\nLoad `swank` and add this repository path to `swank::*load-path*`, in your Lisp compiler init file (~/.sbclrc if using SBCL):\n\n```lisp\n(require :swank)\n(push #p\"~/slime-breakpoints/\" swank::*load-path*)\n```\n\nIn Emacs, add this repository path to `load-path` and `slime-breakpoints` to `slime-contribs` in `~/.emacs` init file, like:\n\n```\n(push \"~/slime-breakpoints\" load-path)\n\n(setq slime-contribs '(slime-fancy slime-breakpoints))\n\n(slime-setup)\n```\n\n## Use\n\n### Breakpoints\n\n- **slime-break-on-entry** *C-c b RET* - Install breakpoint on FUNCTION-NAME.\n- **slime-list-breakpoints** *C-c b l* - Open a buffer that list the current installed breakpoints.\n- **slime-remove-all-breakpoints**  *C-c b q* - Remove all breakpoints.\n- **slime-remove-breakpoint** *C-c b \u003cdeletechar\u003e* - Remove breakpoint on FUNCTION-NAME.\n- **slime-toggle-breakpoint** *C-c b SPC* - Toggle breakpoint on FUNCTION-NAME.\n- **slime-break-with-last-expression** - Compile function at point with a BREAK at last expression position.\n\n### Tracing\n- **slime-trace-last-expression** - Compile function at point with a 'trace' expression at last expression position.\n\n### Stepping\n\n- **slime-step-in-last-expression** - Compile function at point with a 'step' expression at last expression position.\n- **slime-step-in-next-expression** - Compile function at point with a 'step' expression at next expression position.\n\n### Debug printing\n\nThese commands require [cl-debug-print](https://github.com/masatoi/cl-debug-print) installed (it is available via Quicklisp).\n\n- **slime-debug-print-next-expression** - Instrument next expression to be debug printed when evaluated.\n- **slime-debug-print-last-expression** - Instrument last expression to be debug printed when evaluated.\n\n## Common Lisp api\n\nYou can also use from Common Lisp directly. The `breakpoints` package exports this functions:\n\n### break-on-entry\n\n```lisp\n(function-name)\n```\n\nSetup a breakpoint on entry on FUNCTION-NAME.\n\n### breakpoint-installed-p\n\n```lisp\n(function-name)\n```\n\nWether a breakpoint is installed on FUNCTION-NAME.\n\n### reinstall-all-breakpoints\n\n```lisp\nnil\n```\n\nReinstall all breakpoints.\n\nWhen a function is recompiled, the breakpoint is lost. A call to this function reintalls all breakpoints.\n\n### reinstall-breakpoint\n\n```lisp\n(function-name)\n```\n\nReinstall breakpoint on FUNCTION-NAME.\n\nWhen a function is recompiled, the breakpoint is lost. A call to this function reinstalls the breakpoint.\n\n### remove-all-breakpoints\n\n```lisp\nnil\n```\n\nRemove all installed breakpoints.\n\n### remove-breakpoint\n\n```lisp\n(function-name)\n```\n\nRemove breakpoint on FUNCTION-NAME.\n\n### toggle-breakpoint\n\n```lisp\n(function-name)\n```\n\nToggle breakpoint on FUNCTION-NAME.\n\n# SLDB-SOURCE-EVAL\n\nSLIME debugger (SLDB) extension that adds debugger context based evaluation directly from Lisp source buffers.\n\n![sldb-source-eval](sldb-source-eval.png)\n![sldb-source-eval](sldb-source-eval.gif)\n\nWhen SLIME debugger (SLDB) opens, move cursor to a backtrace frame, and press letter `v' for navigating to the frame source.\nUse C-x C-e to evaluate expressions in the source buffer using the backtrace frame as context.\n\n# SLDB-SHOW-FRAME-LOCAL\n\nThis is a prototype.\n\nShow backtrace frames locals when the ursor over source code.\n\n![sldb-show-frame-local](sldb-show-frame-local.gif)\n\n## Setup\n\n```lisp\n(require 'sldb-show-frame-local)\n(sldb-show-frame-local-on-cursor-move)\n```\n","funding_links":[],"categories":["Emacs ##"],"sub_categories":["Third-party APIs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmontone%2Fslime-breakpoints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmontone%2Fslime-breakpoints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmontone%2Fslime-breakpoints/lists"}