File tree Expand file tree Collapse file tree 6 files changed +19
-15
lines changed Expand file tree Collapse file tree 6 files changed +19
-15
lines changed Original file line number Diff line number Diff line change 1
1
(ns debugger.commands
2
- (:use debugger.config)
3
2
(:require [debugger.config :refer :all ]
4
3
[debugger.formatter :refer [safe-find-var
5
4
no-sources-found
Original file line number Diff line number Diff line change 6
6
safe-find-var
7
7
no-sources-found]]
8
8
[debugger.commands :refer [print-short-source print-trace]]
9
- [debugger.repl :refer [prompt-fn read-fn eval-fn caught-fn]]))
9
+ [debugger.repl :refer [prompt-fn read-fn eval-fn caught-fn]])
10
+ (:import [clojure.lang Compiler$LocalBinding]))
11
+
12
+ (defn- sanitize-env
13
+ [env]
14
+ (into {} (for [[sym bind] env
15
+ :when (instance? Compiler$LocalBinding bind)]
16
+ [`(quote ~sym) (.sym bind)])))
10
17
11
18
(defmacro dbg
12
19
[x]
16
23
x#)))
17
24
18
25
(defmacro break [& body]
19
- (let [env (into {} ( map ( fn [[sym bind]] [`(quote ~sym) ( .sym bind)]) &env) )
26
+ (let [env (sanitize-env &env)
20
27
break-line (:line (meta &form))]
21
28
`(let [trace# (-> (Throwable. ) .getStackTrace seq)
22
29
outer-fn-symbol# (-> trace# first .getClassName demunge deanonimize-name symbol)
65
72
66
73
67
74
(defmacro break-catch [& body]
68
- (let [env (into {} ( map ( fn [[sym bind]] [`(quote ~sym) ( .sym bind)]) &env) )
75
+ (let [env (sanitize-env &env)
69
76
break-line (:line (meta &form))]
70
77
`(try
71
78
(do ~@body)
Original file line number Diff line number Diff line change 54
54
(and short? (>= line-number (+ break-line *code-context-lines*))) nil
55
55
:else (str " " line-number " : " line)))
56
56
57
- (defn deanonimize-name [^String s]
57
+ (defn deanonimize-name
58
58
" Inner qualified names `debugger.core-test/err/fn--4248` -> no source found"
59
+ [^String s]
59
60
(clojure.string/join " /" (take 2 (clojure.string/split s #"/" ))))
60
61
61
62
62
- (defn safe-find-var [sym]
63
+ (defn safe-find-var
63
64
" No raise of not found ns of symbol"
65
+ [sym]
64
66
(and (-> sym namespace symbol find-ns)
65
67
(-> sym find-var)))
66
68
Original file line number Diff line number Diff line change 1
1
(ns debugger.main
2
- (:use [debugger core])
2
+ (:require [debugger. core :refer :all ])
3
3
(:gen-class ))
4
4
5
5
; ; `lein run -m debugger.main 1 2` shouldn't stop in debugger
Original file line number Diff line number Diff line change 3
3
[clojure.walk :refer [postwalk-demo]]
4
4
[debugger.core :refer :all ]))
5
5
6
- (deftest a-test
7
- (testing " FIXME, I fail."
8
- (is (= 1 1 ))))
9
-
10
6
(def wow 1 )
11
7
12
8
(defn foo [& args]
Original file line number Diff line number Diff line change 3
3
(:require [debugger.time :refer :all ]
4
4
[clojure.test :refer :all ]))
5
5
6
- (deftest now-test []
6
+ (deftest now-test
7
7
(is (= (.getTime (Date. )) (.getTime (now )))))
8
8
9
9
10
- (deftest minus-test []
10
+ (deftest minus-test
11
11
(is (= (-> (Date. ).getTime (- 2000 ) (Date. ) .getTime)
12
12
(-> (now ) (minus (seconds 2 )) .getTime))))
13
13
14
- (deftest interval-test []
14
+ (deftest interval-test
15
15
(is (= 4 (-> (now )
16
16
(minus (seconds 4 ))
17
17
(interval (now ))
18
18
(in-seconds )))))
19
19
20
- (deftest compatibility-test []
20
+ (deftest compatibility-test
21
21
(are [last-quit-seconds-ago skip-repl-if-last-quit-ago check]
22
22
(is (= check (->> (now ) (interval (minus (now ) (seconds last-quit-seconds-ago))) in-seconds (< skip-repl-if-last-quit-ago))))
23
23
4 2 true
You can’t perform that action at this time.
0 commit comments