[Pintos] Project02 _ User Programs | Keyword | Segmentation Fault

Segmentation Fault

  • ํ”„๋กœ๊ทธ๋žจ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ์ฃผ๋กœ ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜, ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์œ„๋ฐ˜ํ–ˆ์„ ๋•Œ ์šด์˜์ฒด์ œ์— ์˜ํ•ด ๊ฐ์ง€๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ•์ œ ์ข…๋ฃŒ๋˜๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค.

 

Segmentation Fault์˜ ๊ฐœ๋…

  • ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹นํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Segmentation Fault๋Š” ์ด๋Ÿฌํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ์›์น™์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๋ฐœ์ƒํ•  ๋•Œ ์šด์˜์ฒด์ œ๊ฐ€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

  1. ๋„ ํฌ์ธํ„ฐ๋‚˜ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ํฌ์ธํ„ฐ๋ฅผ ์ฐธ์กฐ: ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ํฌ์ธํ„ฐ๋Š” ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋„ ํฌ์ธํ„ฐ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” 0๋ฒˆ์ง€์— ๋Œ€ํ•œ ์ฐธ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๋ฉ๋‹ˆ๋‹ค.
  2. ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ: ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ํ›„ free๋‚˜ delete๋กœ ํ•ด์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค์‹œ ์ ‘๊ทผํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์ž˜๋ชป๋œ ๋ฐฐ์—ด ์ธ๋ฑ์Šค ์ ‘๊ทผ: ๋ฐฐ์—ด์˜ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด์„  ์ธ๋ฑ์Šค์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ ํ• ๋‹น๋˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜์–ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์ฝ๊ธฐ ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ: ๋ฌธ์ž์—ด ์ƒ์ˆ˜์™€ ๊ฐ™์ด ์ฝ๊ธฐ ์ „์šฉ ์˜์—ญ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

 

Segmentation Fault๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์ด์œ 

 

  • Segmentation Fault๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ์œ ํšจํ•œ์ง€๋ฅผ ์šด์˜์ฒด์ œ๊ฐ€ ๊ฒ€์‚ฌํ•˜์—ฌ ์ž˜๋ชป๋œ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์˜ ์•ˆ์ „์„ฑ๊ณผ ๋ณด์•ˆ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ž์œ ๋กญ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ ์†์ƒ, ๋ณด์•ˆ ์œ„ํ˜‘, ์‹œ์Šคํ…œ ๋ถˆ์•ˆ์ • ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Segmentation Fault๋Š” ์ด๋ฅผ ์˜ˆ๋ฐฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ํ—ˆ์šฉ๋œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ๋งŒ ๋™์ž‘ํ•˜๋„๋ก ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.