Skip to content

Commit c6fff81

Browse files
authored
[전희선] 13주차 미션 제출 (#115)
1 parent dad2623 commit c6fff81

File tree

1 file changed

+145
-0
lines changed

1 file changed

+145
-0
lines changed

8th_members/전희선/13주차.md

+145
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
## (Chapter 14) pdb 사용해보기
2+
#### (참고) 주요 PDB 명령어
3+
- n (next): 다음 라인으로 이동
4+
- s (step): 함수 내부로 들어감
5+
- c (continue): 다음 중단점까지 실행
6+
- p (print): 변수 값 출력
7+
- l (list): 현재 위치의 코드 표시
8+
- q (quit): 디버거 종료
9+
10+
#### test.py
11+
```python
12+
import pdb
13+
14+
def add(n1, n2):
15+
result = n1 + n2
16+
pdb.set_trace()
17+
return result
18+
19+
def subtract(n1, n2):
20+
result = n2 - n1
21+
pdb.set_trace()
22+
return result
23+
24+
a = 1
25+
b = 2
26+
c = 3
27+
d = add(a, b)
28+
e = subtract(c, b)
29+
```
30+
31+
#### Result
32+
```
33+
✗ python3 -m pdb test.py
34+
> /Users/user/Documents/CPython-Guide/ch14/test.py(1)<module>()
35+
-> import pdb
36+
(Pdb) n
37+
> /Users/user/Documents/CPython-Guide/ch14/test.py(3)<module>()
38+
-> def add(n1, n2):
39+
(Pdb) n
40+
> /Users/user/Documents/CPython-Guide/ch14/test.py(8)<module>()
41+
-> def subtract(n1, n2):
42+
(Pdb) n
43+
> /Users/user/Documents/CPython-Guide/ch14/test.py(13)<module>()
44+
-> a = 1
45+
(Pdb) n
46+
> /Users/user/Documents/CPython-Guide/ch14/test.py(14)<module>()
47+
-> b = 2
48+
(Pdb) l
49+
9 result = n2 - n1
50+
10 pdb.set_trace()
51+
11 return result
52+
12
53+
13 a = 1
54+
14 -> b = 2
55+
15 c = 3
56+
16 d = add(a, b)
57+
17 e = subtract(c, b)
58+
18
59+
[EOF]
60+
(Pdb) n
61+
> /Users/user/Documents/CPython-Guide/ch14/test.py(15)<module>()
62+
-> c = 3
63+
(Pdb) n
64+
> /Users/user/Documents/CPython-Guide/ch14/test.py(16)<module>()
65+
-> d = add(a, b)
66+
(Pdb) s
67+
--Call--
68+
> /Users/user/Documents/CPython-Guide/ch14/test.py(3)add()
69+
-> def add(n1, n2):
70+
(Pdb) n
71+
> /Users/user/Documents/CPython-Guide/ch14/test.py(4)add()
72+
-> result = n1 + n2
73+
(Pdb) n
74+
> /Users/user/Documents/CPython-Guide/ch14/test.py(5)add()
75+
-> pdb.set_trace()
76+
(Pdb) n
77+
> /Users/user/Documents/CPython-Guide/ch14/test.py(6)add()
78+
-> return result
79+
(Pdb) n
80+
--Return--
81+
> /Users/user/Documents/CPython-Guide/ch14/test.py(6)add()->3
82+
-> return result
83+
(Pdb) n
84+
> /Users/user/Documents/CPython-Guide/ch14/test.py(17)<module>()
85+
-> e = subtract(c, b)
86+
(Pdb) s
87+
--Call--
88+
> /Users/user/Documents/CPython-Guide/ch14/test.py(8)subtract()
89+
-> def subtract(n1, n2):
90+
(Pdb) c
91+
> /Users/user/Documents/CPython-Guide/ch14/test.py(11)subtract()
92+
-> return result
93+
(Pdb) l
94+
6 return result
95+
7
96+
8 def subtract(n1, n2):
97+
9 result = n2 - n1
98+
10 pdb.set_trace()
99+
11 -> return result
100+
12
101+
13 a = 1
102+
14 b = 2
103+
15 c = 3
104+
16 d = add(a, b)
105+
(Pdb) n
106+
--Return--
107+
> /Users/user/Documents/CPython-Guide/ch14/test.py(11)subtract()->-1
108+
-> return result
109+
(Pdb) n
110+
--Return--
111+
> /Users/user/Documents/CPython-Guide/ch14/test.py(17)<module>()->None
112+
-> e = subtract(c, b)
113+
(Pdb) n
114+
--Return--
115+
> <string>(1)<module>()->None
116+
(Pdb) n
117+
> /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/bdb.py(584)run()
118+
-> self.quitting = True
119+
(Pdb) n
120+
> /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/bdb.py(585)run()
121+
-> sys.settrace(None)
122+
(Pdb) n
123+
The program finished and will be restarted
124+
> /Users/user/Documents/CPython-Guide/ch14/test.py(1)<module>()
125+
-> import pdb
126+
(Pdb) q
127+
```
128+
129+
## (Chapter 15) cProfile 사용해보기
130+
131+
(위 test.py에서 pdb 관련 부분만 주석 처리)
132+
```
133+
✗ python3 -m cProfile test.py
134+
5 function calls in 0.000 seconds
135+
136+
Ordered by: standard name
137+
138+
ncalls tottime percall cumtime percall filename:lineno(function)
139+
1 0.000 0.000 0.000 0.000 test.py:3(<module>)
140+
1 0.000 0.000 0.000 0.000 test.py:3(add)
141+
1 0.000 0.000 0.000 0.000 test.py:8(subtract)
142+
1 0.000 0.000 0.000 0.000 {built-in method builtins.exec}
143+
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
144+
```
145+
![image](https://github.com/heehehe/CPython-Guide/assets/41580746/6fa7b923-d139-487d-9f2f-6fb9b55dd677)

0 commit comments

Comments
 (0)