{"action":"created","issue":{"url":"https://api.github.com/repos/cursiveclojure/cursive/issues/617","labels_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/617/labels{/name}","comments_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/617/comments","events_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/617/events","html_url":"https://github.com/cursiveclojure/cursive/issues/617","id":48805637,"number":617,"title":"Debug REPL session doesn't stop on breakpoint","user":{"login":"aeberts","id":571576,"avatar_url":"https://avatars.githubusercontent.com/u/571576?v=3","gravatar_id":"","url":"https://api.github.com/users/aeberts","html_url":"https://github.com/aeberts","followers_url":"https://api.github.com/users/aeberts/followers","following_url":"https://api.github.com/users/aeberts/following{/other_user}","gists_url":"https://api.github.com/users/aeberts/gists{/gist_id}","starred_url":"https://api.github.com/users/aeberts/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeberts/subscriptions","organizations_url":"https://api.github.com/users/aeberts/orgs","repos_url":"https://api.github.com/users/aeberts/repos","events_url":"https://api.github.com/users/aeberts/events{/privacy}","received_events_url":"https://api.github.com/users/aeberts/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/cursiveclojure/cursive/milestones/39","labels_url":"https://api.github.com/repos/cursiveclojure/cursive/milestones/39/labels","id":919018,"number":39,"title":"0.1.44","description":"","creator":{"login":"cursiveclojure","id":5589171,"avatar_url":"https://avatars.githubusercontent.com/u/5589171?v=3","gravatar_id":"","url":"https://api.github.com/users/cursiveclojure","html_url":"https://github.com/cursiveclojure","followers_url":"https://api.github.com/users/cursiveclojure/followers","following_url":"https://api.github.com/users/cursiveclojure/following{/other_user}","gists_url":"https://api.github.com/users/cursiveclojure/gists{/gist_id}","starred_url":"https://api.github.com/users/cursiveclojure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cursiveclojure/subscriptions","organizations_url":"https://api.github.com/users/cursiveclojure/orgs","repos_url":"https://api.github.com/users/cursiveclojure/repos","events_url":"https://api.github.com/users/cursiveclojure/events{/privacy}","received_events_url":"https://api.github.com/users/cursiveclojure/received_events","type":"User","site_admin":false},"open_issues":18,"closed_issues":1,"state":"open","created_at":"2015-01-01T04:41:04Z","updated_at":"2015-01-13T12:52:32Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2014-11-14T16:01:10Z","updated_at":"2015-01-14T05:03:04Z","closed_at":null,"body":"Caveat: This issue may be due to the fact I don't fully understand how the debug repl works :-) \r\n\r\nI have a \"Local Repl\" config setup as per: https://cursiveclojure.com/userguide/repl.html\r\n\r\nI have set a breakpoint in a function: \r\n\r\n```\r\n(defn testdebug [foo]\r\n  (println foo))            ;; <---  breakpoint set here in intellij\r\n```\r\n\r\n- I have the Local Repl config selected and I click the green bug in the toolbar: (Debug 'Local Repl')\r\n\r\n- I call the function from the Repl that contains the breakpoint:\r\n\r\n```\r\n(offline-4clojure.p97/testdebug \"blah\")\r\nblah\r\n=> nil\r\n```\r\n\r\n...The repl returns the value and doesn't pause execution at the breakpoint.\r\n\r\nexpected: Cursive would pause execution at the breakpoint and allow me to debug the function. \r\n\r\nMaybe I'm missing something obvious here?? \r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/cursiveclojure/cursive/issues/comments/69869627","html_url":"https://github.com/cursiveclojure/cursive/issues/617#issuecomment-69869627","issue_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/617","id":69869627,"user":{"login":"cursiveclojure","id":5589171,"avatar_url":"https://avatars.githubusercontent.com/u/5589171?v=3","gravatar_id":"","url":"https://api.github.com/users/cursiveclojure","html_url":"https://github.com/cursiveclojure","followers_url":"https://api.github.com/users/cursiveclojure/followers","following_url":"https://api.github.com/users/cursiveclojure/following{/other_user}","gists_url":"https://api.github.com/users/cursiveclojure/gists{/gist_id}","starred_url":"https://api.github.com/users/cursiveclojure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cursiveclojure/subscriptions","organizations_url":"https://api.github.com/users/cursiveclojure/orgs","repos_url":"https://api.github.com/users/cursiveclojure/repos","events_url":"https://api.github.com/users/cursiveclojure/events{/privacy}","received_events_url":"https://api.github.com/users/cursiveclojure/received_events","type":"User","site_admin":false},"created_at":"2015-01-14T05:03:04Z","updated_at":"2015-01-14T05:03:04Z","body":"So I went over this code (it's legacy code from La Clojure which I haven't kept up to date with Cursive improvements), and frankly it's amazing that the debugger ever stopped at all. Many bugs fixed, including:\r\n* Better class matching over the JDI, should make the debugger faster and allow stopping in `fn` forms and forms that desugar to it. Previously this didn't work.\r\n* Better matching of debug positions to file positions (see #168)\r\n* Better REPL handling. Previously forms entered in the REPL could never be debugged, because their source and line information was wrong. This makes sense in the case of functions entered in the REPL editor (since there really is no source to debug over) but was a bit unfortunate when executing forms from the editor with e.g. Send top form to REPL. These now work as you would expect and the updated versions can be debugged."}}