C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[12169] Re: Roll up 신중하게 설치하세요
김상구.패패루 [peperu] 1798 읽음    2006-09-22 11:42
아직 정확하게 단언하기는 힘들지만 RollUp 설치 후 제가 만든 클래스가 오동작을 일으키는군요.
지금까지 체크해 본 바로는 함수 선언시 __fastcall을 사용한 경우 문제가 발생하고 있습니다. this포인터가 함수 진입 직전과 직후에 변경되는 황당한 문제가 발생하네요.

무슨 얘긴고 하니...

1:  bool __fastcall TAr::Extract(const String &Directory, TStrings *Contents)   <-- 이 시점에서 this == 00B2C530
2:  {                                                                                                                <-- 이 시점에서 this == 00B22C39
3:    if (FArchive)
...    ....
...  }

이런식으로 구현된 부분이 있는데 컴파일, 링킹은 모두 문제 없습니다.
라인 1: 에 브레이크를 걸어놓고 디버깅 해 보면 1: 과 2:의 this포인터 값이 변하는 황당한 문제가 발생하네요...
Contents는 NULL로 넘기고 있고 const String &Directory를 String Directory 이렇게 바꿔보고 함수이름서부터 함수 인자이름까지 전부 다 바꿔봐도 소용이 없네요.
__fastcall을 제거하면 아무 문제가 없었습니다.

같은 클래스의 Open이라는 맴버함수는 인자가 전혀 없는 함수인데 이 함수는 __fastcall을 사용시에도(의미도 없지만) 정상동작하고 있군요.

기존에 BCB6에서 사용하던 클래스였고, 물론 당시 전혀 문제 없이 동작하고 있었습니다.
오늘 집에 가서 Rollup이 설치되지 않은 BDS에서 다시한번 컴파일 해 보려 합니다. 만약 문제없이 동작한다면 RollUp과 관련된 버그인게 거의 확실해 보이네요. 만약 이게 정말 BDS Rollup의 버그라면 아주 심각한 문제로 보입니다.


박지훈.임프 님이 쓰신 글 :
: 여기를 보세요~ ^^
:
: http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_res&no=319
김상구.패패루 [peperu]   2006-09-22 12:00 X
추가 테스트를 해 보는데, 디버거가 좀 이상해 보이는군요. 브레이크를 걸지 않고 그냥 실행하면 또 잘 동작하네요. 브레이크를 걸면 주소가 바뀌면서 어김없이 엑세스 바이올레이션이 발생하고 있습니다. -__- 이해하기 어렵군요.
머슴.한석복 [han8783]   2006-09-22 13:21 X
음..큰일이군요. 업데이트나 패치들에서 자꾸 소소한 이해할 수 없는 에러와 오동작들을 만들어 내서 말입니다. 마치, 테스트 안된 어플리케이션 같다는 생각이 드네요.
김상구.패패루 [peperu]   2006-09-22 16:14 X
제 부족한 실력때문일 수도 있으니까요, 아직 단정짓진 마시길...
저도 그 클래스 이외엔 별 문제가 발생하고 있진 않습니다. 예전에도 GDI+관련 버그를 게시판에 적은 적이 있습니다만, 아직 해결하지 못하고 있습니다. 문제는 그것이 정말 버그인지, 판단하기가 쉽지 않다는겁니다. 에러 재현을 위해 간단하게 코드를 작성해 보면 정상작동하니 환장하겠네요. ^^
라스코니 [chouoo]   2006-09-22 16:49 X
이번 2006 C++ builder 버전은 문제가 좀 있습니다. 제 경우 디버그에서 자주 뻗더군요. 그 때마다 다시 builder를 실행해 줘야 하더군요. UI 는 많이 향상되었지만 자잘한 버그가 아직 많이 있습니다.
쓰면서도 아예 다시 C++ builder 6.0으로 다시 시작할까 하는 생각도 들더군요.
공짜 툴로 쓸수 있게 해준것은 참 감사하고 또 이런 기회를 통해서 많은 사람들이 사용해 볼텐데 자잘한 버그 때문에 역효과를 가져오지 않을까 걱정이 되네요.

+ -

관련 글 리스트
12165 BDS 2006 / Turbo Hotfix rollup 패키지가 나왔습니다. 박지훈.임프 1897 2006/09/21
12169     Re: Roll up 신중하게 설치하세요 김상구.패패루 1798 2006/09/22
12171         Re:Re: Roll up 과 상관 없습니다. 김상구.패패루 1519 2006/09/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.