요새 필요해서 좀 찾아보고 있는 부분인데 말이야..
뭐 일단 어느정도 감은 잡았는데 이게 확실한지 아닌지 애매하단 말이지..
물론 간단한 원리가 아니라 G++ 에서 실제로 내부 적으로 구현되는 원리와 순서
이런 거를 알고 있는 횽을 원함
아는 횽들 없나
여기 C++ Exception Handling 원리 아는 횽 있나?
류셀(210.94)
2012-04-25 13:56
추천 0
댓글 15
다른 게시글
-
C 언어 논란 내 의견 [28]땡칠도사(07dosa) | 12.04.25추천 0
-
곧 디아3가 나오는데 어떨거 같어? [4]서현빠돌이(wowbar) | 12.04.25추천 0
-
흑.. 은 봅니다. 파이프라인 답. [2]빌어먹을야..(chltjsgur) | 12.04.25추천 0
-
아...굴욕적이다... [2]퓨리님(111.91) | 12.04.25추천 0
-
자바에서 xml 파일 읽어와서 파싱하고 db에 넣을때 어떤 순서로 [12]?(210.98) | 12.04.25추천 0
-
밑에 누가 오옼 검색해보래서 해봤는데 [6]빌어먹을야..(chltjsgur) | 12.04.25추천 0
-
걍 선택과 집중 ㅇㅇ☎v2.2™(roidz) | 12.04.25추천 0
-
아 프로그래밍하고 싶다.공학적닭튀..(libellus) | 12.04.25추천 0
-
프로그래밍하다보면 [5]생물학(211.234) | 12.04.25추천 0
-
비가 내리고~~~ 음악이 흐르면~~~~♬ [12]빌어먹을야..(chltjsgur) | 12.04.25추천 0
레알 흑마법 - _-) 나는 stack frame을 이용해서 하는 방법은 아는데, 듣기로는 다른 방법도 있는듯.
http://www.math.utah.edu/docs/info/gxxint_1.html#SEC14
첫문장이 가슴에 확 와닿네
ㄴwindows x64 상에서는 x86 하고 다르게 table 기반 검색으로 한다던데, 그건 나하고는 관련이 없어서 안쓰구.. g++ 에서만 쓰는데 인터페이스랑 이런건 대충 분석함. dependent exception 이건 좀 애매하고 이거 암?
아 물론.. 그런 문서는 다 봤지 @0@.. pdf 부터 안 본게 없을 정도.. 오죽하면 gcc 팀에 메일 까지 보내봤겠어 아직 답장은 안왔지만..
dependent exception은 뭔지 모름. 근데 구글해도 안걸리네.
stack frame 사용하는거라면 진짜 간단하게 되긴 하는데 \'ㅅ\')
그냥 catch가 있는 frame은 전부 표시해주고, throw 뜨면 stack-top부터 bottom으로 linear-search 해주면서 지나치는 frame은 dealloc 해주면 됨.
아마도 그런 형태 였으면 좋겠는데.. 아직 확신 할 수가 없음.. x86 라이브러리가 아니라 x64 환경에 라이브러리가 아니라 OS 만들면서 커널에서 exception 지원하려고 하는거라.. 이게 되면 커널에서 stl이랑 rtti 랑 이런거 저런거 많이 쓸 수 있는데 젠장 쉽지 않네..
아니 이거 실제로 쓰이는 모델임 ㅇㅇ 근데 표준에선 작동모델 정의 안함?
나도 대충 원리는 그렇게 알고 있긴 한데 이게 x64에서도 동일하게 쓰는지 모를 뿐더러 x64에서 abi 는 x86 하고 또 달라서 의심해봐야 하는 상황, 그거 보는 것도 아직 문서가 1.0 버젼이 아님 거의 1.0 이긴 한데..
고로 봐야 하는게 이런 상황이지 보통은 exception에 3단 레이어가 있어서 1단이 컴파일러에서 생성하는 코드인데 그거 제외하고 런타임으로 지원하는 exception handling 부분 라이브러리를 제작 해주어야 하는데, 이 라이브러리를 제작함에 있어서 LSDA 영역 부분 설명도 아직 명확하게 나와 있는 것도 아니고 디버깅 쪽 CFI 데이터도 아직 확실히 되는지는 모르고 2단, 3단 레이어 인터페이스에서 at least 하게 필요한 인터페이스 설명도 명확하게 된게 업성
http://wiki.osdev.org/Libsupcxx
음... 이건 유용하려나...? gcc 내부에서 쓰이는 c++ 지원 라이브러리인데
ㅇㅇ 현재 4.6 버젼 소스쪽 보고 있는 중이징.. 꼭 필요한거랑 애매한 문제들 objdump 하나하나 떠가면서 할 상황이 안되서 ㅋㅋ
그나저나 재밌는거하네 커널에서 C++라니 ㅋㅋ
new, delete 로 커널 내에서 할당 해제 하는건 간단하니 예전에 해놨었는데.. 위에껀 안하고 있으니 뭔가 찝찝해서.. Write Kernel with Full Support C++ 좀 있어 보이잖아 ㅋㅋ