์์ธ์ฒ๋ฆฌ
[C++] C++์์ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH) ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
[C++] C++์์ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH) ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
2022.10.18๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ์ C++ ์์ธ ์ฒ๋ฆฌ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ๋ Microsoft Windows์ ๊ธฐ๋ณธ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ด๋ฉฐ, ์ํํธ์จ์ด์ ํ๋์จ์ด ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ์ค๋ช
ํ์์ต๋๋ค. ์ด๋ฌํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์. ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH)๋? ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(์ดํ SEH)๋ ํ๋์จ์ด์ ์ํํธ์จ์ด ์์ธ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ Microsoft Windows์ ๊ธฐ๋ณธ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์
๋๋ค. ํ๋์จ์ด ์์ธ๋ ์์ธ๊ฐ ๋ฐ์ํ ์ฃผ์ฒด๊ฐ CPU luckygg.tistory.com ๊ทธ๋ฆฌ๊ณ C++ ์์ธ ๋ฌธ๋ฒ์ธ try, catch..
ํ๋ก๊ทธ๋จ์์ ์ผ๋ฐ์ ์ธ ์์ธ ์ฒ๋ฆฌ(Exception Handling)ํ๋ ๋ฐฉ๋ฒ
ํ๋ก๊ทธ๋จ์์ ์ผ๋ฐ์ ์ธ ์์ธ ์ฒ๋ฆฌ(Exception Handling)ํ๋ ๋ฐฉ๋ฒ
2022.10.15์์ธ ์ฒ๋ฆฌ๊ฐ ์ ํ์ํ ๊น์? ํ๋ก๊ทธ๋จ์ ์์ธ ์ฒ๋ฆฌ๋ ์์ฃผ ์ค์ํฉ๋๋ค. ๋ด๊ฐ ๋ง๋ ํ๋ก๊ทธ๋จ์ด ๋ชจ๋ ์ํฉ์์ ํญ์ ์ ๋์ํ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์๋ฌด๋ฆฌ ์ ๋ง๋ค์๋ค๊ณ ํด๋, ๋ง์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ํ๊ฒฝ์ด๋ ์กฐ์ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ฌด์จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ง๋ ์ ์๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ํ๋ก๊ทธ๋๋ฐ ๊ด๋ จ ์์ (๊ธฐ์ด ์ธ์ด ๋ฌธ๋ฒ์ ๋ค๋ฃจ๋ ์ฑ
๋ฟ๋ง ์๋๋ผ, ํ๋ก๊ทธ๋จ ์ค๊ณ, ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ ๋ฑ)์ ๋ณด๋ฉด, ๊ฑฐ์ ๋๋ถ๋ถ ์์ธ ์ฒ๋ฆฌ์ ์ค์์ฑ์ ๊ฐ์กฐํ๊ณ ์์ต๋๋ค. ์์ธ ์ฒ๋ฆฌ๊ฐ ์ ๋์ด ์์ด์ผ ์์ ์ ์ธ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์ฐธ๊ณ ๋ก, ์ ๊ฐ ์ธ๊ธํ๋ ์์ธ ์ฒ๋ฆฌ๋ ๋์ค์ ์๊ฐํ ์๋ฌ ์ฒ๋ฆฌ(Error Handling)์ ์์ธ ์ฒ๋ฆฌ(Exception Handling) ๋ชจ๋๋ฅผ ํต์นญํ๋ ํํ์
๋๋ค. ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ..
์์ธ ์คํ ํ๊ธฐ(Stack Unwinding)์ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ํฅ
์์ธ ์คํ ํ๊ธฐ(Stack Unwinding)์ ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ํฅ
2022.10.12์คํ ํ๊ธฐ(Stack Unwinding)๋? ์์ธ๊ฐ ๋ฐ์ํ ํจ์์์ ์์ธ๊ฐ ์ฒ๋ฆฌ๋์ง ์์ผ๋ฉด, ์์ ํจ์๋ก ๋์๊ฐ ์์ธ๊ฐ ์ฒ๋ฆฌ๋๊ธฐ๋ฅผ ์๋ํฉ๋๋ค. ๋ง์ฝ, ์์ ํจ์์๋ ์๋ค๋ฉด ๋ค์ ๊ทธ ์์ ์์ ํจ์๋ก ๋์๊ฐ๋ฉฐ ๋ฐ๋ณตํ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ, ์์ธ๊ฐ ๋ฐ์ํ๋๋ฐ ์ด๋ ๊ณณ์์๋ try-catch ๋ฌธ์ด ์๋ค๋ฉด ํ๋ก๊ทธ๋จ์ ์ข
๋ฃ๋๊ณ ๋ง๋๋ค. ์ด๋ ๊ฒ ์ด์ ์ ํธ์ถ๋ ํจ์๋ก ๊ณ์ ๋์๊ฐ๋ ๊ฒ์ ์คํ ํ๊ธฐ(Stack Unwinding)๋ผ๊ณ ํฉ๋๋ค. ๋ค์์ ์์ ์ฝ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. namespace ExamException { class Program { static void func1() { func2(); } static void func2() { func3(); } static void func3() { throw new Ex..
๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ
๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH, Structured Exception Handling) ๊ธฐ์ด ์ด์ผ๊ธฐ
2022.08.28๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(SEH)๋? ๊ตฌ์กฐ์ ์์ธ ์ฒ๋ฆฌ(์ดํ SEH)๋ ํ๋์จ์ด์ ์ํํธ์จ์ด ์์ธ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ Microsoft Windows์ ๊ธฐ๋ณธ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์
๋๋ค. ํ๋์จ์ด ์์ธ๋ ์์ธ๊ฐ ๋ฐ์ํ ์ฃผ์ฒด๊ฐ CPU์ ๊ฐ์ ํ๋์จ์ด๋ผ๋ ๊ฒ์ด๊ณ , ์ํํธ์จ์ด ์์ธ๋ ์ฌ์ฉ์๊ฐ ์์ฑํ ์ํํธ์จ์ด ๋ฐ ์ด์์ฒด์ ๊ฐ ์์ธ์ ์ฃผ์ฒด๋ผ๋ ์๋ฏธ์
๋๋ค. ์ข ๋ ์ฌ์ด ์๋ฅผ ๋ค์๋ฉด, ์ด๋ค ์๋ฅผ 0์ผ๋ก ๋๋๋ ์ฐ์ฐ์ด๋ ์ ๊ทผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ์ ์๋ํ๋ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ค๋ฉด ํ๋์จ์ด ์์ธ๊ฐ ๋ฐ์ํ๊ณ , ์ ํจํ์ง ์์ ์ธ์์ ๊ฐ์ ์ง์ ํ ๋ ์ํํธ์จ์ด ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด์ฒ๋ผ, ํ๋์จ์ด์ ์ํํธ์จ์ด ์์ธ๋ฅผ ๋ชจ๋ ์ฒ๋ฆฌํ๋ ๋ฉ์ปค๋์ฆ์ด SEH์
๋๋ค. https://docs.microsoft.com/ko-kr/windows/w..