디버깅이 목적이시라면, EIP 를 따로 잡아 내셔서 Call Stack 같은 것을 만드시던가
아니면 써드 파티 툴 같은 것을 이용하시는 것도 좋은 방법입니다.
MethodName은 published 메소드만 동작하며 디버깅 맵도 함께 기록되어야 하며,
또한, RTTI 와 함께 작업이 이루어져야 하므로 권장해 드리고 싶지 않습니다.
또한, 모든 디버깅 맵이 함께 들어갈 경우에 프로그램이 역추적 당하는 것은
시간 문제라고 합니다.
(그 선례로 우리나라 유명 게임 회사 하나가 VC 디버그 맵 파일인 pdb 파일을 함께 배포하여서
CallStack을 자동으로 잡아내주는 기능을 구현하였다가, 이틀만엔가 해킹을 당했습니다)
디버그 맵 코드는 포함을 시키지 않는것이 원칙이며, 다만 EIP등과 Call Stack 정도만
알아내서 배포시에 기록을 하고, 나중 문제가 생기면 그 배포된 것을 토대로 찾아나가는 것이
안정성에는 큰 도움이 됩니다.
아래 자료가 도움이 되실지 모르겠네요.
http://www.undu.com/Articles/010729d.html
cuperido
친구들 님이 쓰신 글 :
:
: 즉 지금 실행하고 있는 메서드 내부에서 ...
: ShowMessage( this->ClassName()+ this->MethodName(Form1) );
: 이런 식으로 클래스 이름과 메서드 이름을 뿌려주고 싶습니다.
:
: 근데 클래스이름을 뿌려주는데...메서드 이름은 뿌려주지 않는군요..ㅜㅜ//
:
: 저 방법이 아닌가요..ㅡㅡ?
:
: 고수님들의 답변 기다립니다...
:
|