E D R , A S I H C RSS

Debugging

1. ๋””๋ฒ„๊ทธ๋Š” ๋ฌด์—‡์ผ๊นŒ?

  • ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ , ๊ทธ ์›์ธ์„ ๋ฐํ˜€๋‚ด์„œ ๊ณ ์น˜๋Š” ์ž‘์—…

1.1. ํ…Œ์ด๋ธ” ๋””๋ฒ„๊น…

1.2. ์ปดํ“จํ„ฐ ๋””๋ฒ„๊น…

1.2.1. ๋””๋ฒ„๊ฑฐ ๋ฐฉ์‹

  • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ• ๋•Œ ๋””๋ฒ„๊น… ๋ชจ๋“œ๋กœ ์ปดํŒŒ์ผํ•˜์—ฌ ๋””๋ฒ„๊ฑฐ ๊ธฐ๋Šฅ์„ ํฌํ•จ์‹œ์ผœ์„œ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์˜ค๋ฅ˜์— ๊ด€ํ•œ ๊ฐ์ข… ์ •๋ณด๋ฅผ ์ˆ˜์ง‘

1.2.2. ๋””๋ฒ„๊ทธ ํ–‰ ๋ฐฉ์‹

  • ์ˆ˜์ง‘ํ•˜๊ณ  ์‹ถ์€ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ๋””๋ฒ„๊น…์šฉ ๋ช…๋ น์„ ๋ฏธ๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ๊ณณ๊ณณ์— ์‚ฝ์ž…ํ•˜์—ฌ ์‹คํ–‰ ์‹œํ‚ค๋Š” ๋ฐฉ์‹

1.2.3. ๊ธฐ๊ณ„์–ด ๋ฐฉ์‹


2. ๋””๋ฒ„๊น… ๋…ธํ•˜์šฐ

  • ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ํ˜„์žฌ ์žˆ๋Š” ๋ฒ„๊ทธ๋“ค์„ ์žก๋Š”๋‹ค.
    • ๋ฒ„๊ทธ๋Š” ์˜ค๋ž˜ ๋˜๋ฉด ๋  ์ˆ˜๋ก ๊ทธ๊ฑฐ์— ๊ด€๋ จ๋œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ธฐ์–ต๋„ ํฌ๋ฏธํ•ด์ง€๊ณ , ๋ถˆ๋ช…ํ™•ํ•ด์ ธ์„œ ๋””๋ฒ„๊น…ํ•˜๋Š”๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.
  • ํ•œ๋ฒˆ์— ํ•˜๋‚˜์”ฉ์˜ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•ด๋ณธ๋‹ค.
    • ๊ณผํ•™์‹คํ—˜์—์„œ๋„ ํ•˜๋‚˜์˜ ์ธ์ž๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ ์‹คํ—˜์„ ํ•˜์ง€ ํ•œ๊บผ๋ฒˆ์— ์—ฌ๋Ÿฌ ์ธ์ž๋ฅผ ๋ฐ”๊พธ๋ฉด์„œ ์‹คํ—˜ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  • ๋ถ„ํ•  ์ •๋ณต ๊ธฐ๋ฒ•
    - ๋ถ„ํ• ์ •๋ณต์„ ํ•˜๋‹ค๊ฐ€ ์ƒ๊ธธ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ๋‚˜๋ฌด๋งŒ ๋ณด๊ฒŒ ๋˜๊ณ  ์ˆฒ์„ ๋ณด์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ฃผ์˜!

3. ๋””๋ฒ„๊น… ์šฉ๋„?

  • ๋ฒ„๊ทธ ์žก๊ธฐ
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ ์†Œ์Šค ์ดํ•ดํ•˜๊ธฐ

4. ๋””๋ฒ„๊ทธ ๋งˆ์Œ๊ฐ€์ง

Ridiculus Simplity
๊นŠ๊ฒŒ ์ƒ๊ฐํ•˜๊ธฐ ๋ณด๋‹ค ๋„“๊ฒŒ ์ƒ๊ฐํ•˜๋ผ.
๋ฒ„๊ทธ๊ฐ€ ์žˆ์„ ๋ฆฌ๊ฐ€ ์—†์–ด!๋ผ๊ณ  ์ƒ๊ฐ์ง€ ๋ง๋ผ.
์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ง€ ์ƒ๊ฐํ•œ๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ๋ˆˆ์— ๋ณด์ด๊ฒŒ ๋งŒ๋“ค๋ผ.
๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค

.

5. ๋””๋ฒ„๊น… ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ๋””๋ฒ„๊น…

5.1. VC++๋””๋ฒ„๊ฑฐ ์“ฐ๊ธฐ

  • Debug
๊ธฐ๋Šฅ ๋‹จ์ถ•ํ‚ค(*->์ค‘์š”๋„) ์˜๋ฏธ
Start Debugging, Go *F5 ๋””๋ฒ„๊น… ๋ชจ๋“œ๋กœ ์‹คํ–‰, ๋””๋ฒ„๊น… ๋ชจ๋“œ ์ค‘์— F5๋ฅผ ๋‹ค์Œ BreakPoint๋กœ ์ด๋™ํ•จ
BreakPoint * F9 ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ๋ฉˆ์ถœ๊ณณ์„ ์ง€์ •
Stop Debugging shift + F5 ๋””๋ฒ„๊น… ๋ชจ๋“œ ์ค‘๋‹จ
Step Into F11 ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ํ•œ ๋ผ์ธ์”ฉ ์‹คํ–‰ - ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€์„œ ๊ณ„์† ์‹คํ–‰
Step Over F10 ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ํ•œ ๋ผ์ธ์”ฉ ์‹คํ–‰ - ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ๋‚ด๋ถ€๋กœ ์•ˆ๋“ค์–ด๊ฐ€๊ณ  ์‹คํ–‰๋งŒ ํ•˜๊ณ  ๋‹ค์Œ ๊ณ„์† ์‹คํ–‰
Step Out shift+F11 Step Into ๋กœ ํ•จ์ˆ˜์•ˆ์— ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ ๋‚˜์˜ค๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉ
Run to Cursor Ctrl+F10 ํ˜„์žฌ ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๊ณณ์œผ๋กœ ๋””๋ฒ„๊น… ์ง€์ ์ด ๋ฐ”๋€œ. ๋‹จ ์ด๋ฏธ ์ง€๋‚œ ๊ณณ์œผ๋กœ๋Š” ์•ˆ๋จ
Set Next Statement - ๋‹ค์Œ ๋””๋ฒ„๊น… ์ง€์ ์„ ์ง€์ •. Run to Cursor์—์„œ๋Š” ์ด๋ฏธ ์ง€๋‚œ๊ณณ์€ ์•ˆ๋˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๋จ
  • View
ํ™”๋ฉด(*->์ค‘์š”๋„) ์šฉ๋„
*Watch Window ๋ณ€์ˆ˜๊ฐ’์ด๋‚˜ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ด„. ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ฌ์ˆ˜๋„ ์žˆ์Œ
Call Stack Window ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ฒฝ๋กœ๋ฅผ ๋ณด์—ฌ์คŒ
Disassembly ์—ญ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์คŒ

5.2. Eclipse๋””๋ฒ„๊ฑฐ ์“ฐ๊ธฐ

๊ธฐ๋Šฅ ๋‹จ์ถ•ํ‚ค(*->์ค‘์š”๋„) ์˜๋ฏธ
Debug start *F11 ๋””๋ฒ„๊น… ๋ชจ๋“œ๋กœ ์‹คํ–‰
BreakPoint * Ctrl + Shift + b ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ๋ฉˆ์ถœ๊ณณ์„ ์ง€์ •
Step Into F5 ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ํ•œ ๋ผ์ธ์”ฉ ์‹คํ–‰ - ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€๋กœ ๋“ค์–ด๊ฐ€์„œ ๊ณ„์† ์‹คํ–‰
Step Over F6 ๋””๋ฒ„๊น… ๋ชจ๋“œ์—์„œ ํ•œ ๋ผ์ธ์”ฉ ์‹คํ–‰ - ํ•จ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด ๋‚ด๋ถ€๋กœ ์•ˆ๋“ค์–ด๊ฐ€๊ณ  ์‹คํ–‰๋งŒ ํ•˜๊ณ  ๋‹ค์Œ ๊ณ„์† ์‹คํ–‰
Run to Return(Step Out) F7 ์–ด๋–ค ํ•จ์ˆ˜์•ˆ์— ๋“ค์–ด๊ฐ”๋‹ค๊ฐ€ ๋ฐ”๋กœ ๊ทธ ํ•จ์ˆ˜๋ฅผ ๋‚˜์˜ค๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉ
Resume(go) F8 ๋‹ค์Œ BreakPoint ์ง€์ ์œผ๋กœ ์ด๋™
  • tip : Ctrl + F11 : ์‹คํ–‰

5.3. PHP ๋””๋ฒ„๊น…

5.3.1. ๋””๋ฒ„๊ทธํ–‰ ๋ฐฉ์‹

  • ๋””๋ฒ„๊น… ํ•˜๊ณ  ์‹ถ์€ ๊ณณ์— ๋ณด๊ณ  ์‹ถ์€ ๋ณ€์ˆ˜๋ช…์„ ํŒŒ์ผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค.

6. ๋ฐ˜๋ณต๋˜๋Š” ๋””๋ฒ„๊น… ํ”ผํ•˜๊ธฐ - DebugJournal

์‚ฌ์‹ค : ์‚ฝ์งˆ ๋‚ด์šฉ, ๊ทธ ์—ฌ์ •, ์‹ค์ˆ˜ํ•œ ์ด์•ผ๊ธฐ -> ์‚ฌ๊ณ ์˜ ๊ณผ์ •์ด ๋“œ๋Ÿฌ๋‚˜๋„๋ก!
๋А๋‚Œ, ๊ตํ›ˆ
๋ฏธ๋ž˜ ํ–‰๋™ ๊ณ„ํš(FAP)
ํ”ผ๋“œ๋ฐฑ

7. Thread

๊ทธ๋ ‡๋‹ค๋ฉด ๋””๋ฒ„๊ฑฐ๋Š” ์จ์•ผ ํ• ๊นŒ? ๋””๋ฒ„๊น…์„ ์•ˆ ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:06
Processing time 0.0082 sec