제품오류 Q&A RAD Studio 10.1 64-Bit 디버깅 문제
2016.10.27 10:22
회사명 | RAD Studio 10.1 64-Bit 디버깅 안됨 |
---|---|
성명 | 오범석 |
이메일 | |
전화번호 | -- |
제품명/버전/에디션 | RAD Studio 10.1 Berlin |
시리얼번호 | JSFL-******-******-MAQS |
본 게시판 제품 구매 고객사에 대한 설치 및 버그 관련 문의 게시판입니다.
* 프로페셔널, 스타터 에디션은 이곳에서 기술지원이 제공되지 않으므로
* http://qc.embarcadero.com/wc/qcmain.aspx 또는 http://www.embarcadero.com/support를 이용하세요.
* 버그 문의의 경우 해당 버그를 재현해 볼 수 있도록 자세히 올려 주시기 바랍니다.
또한 질문을 등록하기에 앞서서
* 설치/등록가이드 또는 개발자 Q&A를 검색 해보시면 원하시는 답이 있을 수도 있습니다.
* 엠바카데로 제품이 아닌 외부 컴포넌트는 해당 제조사에 문의를 하셔야 하며
* 제품 버그가 아닌 코딩 관련 문의는 개발자Q&A 게시판을 이용하시기 바랍니다.
-----------------------------------------------------------------------------------------------
OS 는 Windows 10 64Bit 이며 64비트 어플리케이션을 개발하고자 RAD Studio 를 구매하였습니다.
- 64 Bit 환경
- Host Executble Program : C# 실행파일
- Delphi Projects : DLL File
- OS 계정이 한글 계정일 경우 IDE 에서 64-Bit 로 빌드된 DLL 자체가 디버깅 자체가 되지 않음.
- F9 로 실행시 실행은 되디만 Beack Point 자체가 활성화 되지 않음.
- 간단하게 델파이로만 Form Application 을 만들어 해보았으나 역시 안도.ㅁ
- 32-Bit 로 빌드하고 Host 프로그램도 32-Bit 로 빌드하여 디버깅을 하면 디버깅이 됨
- 증상1 문제로 인하여 로컬에 PAServer 를 설치하고 디버깅하였으나 역시 디버깅 안됨
- Unable to scan program's header 메시지 발생
- 간단하게 델파이로만 Form Application 도 역시 디버깅 안됨
- 한글문제인듯 하여 WIndows 에 계정을 영문으로 생성하고 디버깅하였으나 역시 Unable to scan program's header 메시지 발생.
- 간단한 델파이 샘플을 제작하여 디버깅시는 디버깅이 되지만, DLL 을 64비트 제작하여 디버깅시 디버깅이 안됨.
요약을 하면
2. PAServer 를 이용하였으나 안됨.
3. 각종 방화벽이나 보안 프로그램을 해제하였으니 안됨.
4. 한글 계정이 문제인 듯하여 영문계정으로 생성하였으나 안됨.
5. 영문 계정 생성후 PAServer 를 이용하여 디버깅을 시도하였으나 역시 안됨
답변부탁드립니다.
댓글 6
-
관리자2
2016.10.27 14:58
-
인콘
2016.10.27 22:42
C++ 프로젝트에서 Delphi DLL 을 로딩하는 것이 아니고...
Delphi DLL Project 를 RAD Studio 로 열어서 개발중이며, 디버깅을 위해 Delphi 의 Run Parameter 에 지정한 실행파일이 C#으로 빌드된 프로그램입니다.
C# 코드를 디버깅하는 것이 아니고, Delphi Project 를 열어 디버깅하고자 하는 것입니다.
기능을 추가해야 하는 문제라기 보다는, 디버깅 할 방법이 없다면 명백히 버그인 것 같습니다. ( 사실상 개발툴이 디버깅이라는 기본 기능조차 지원안한다고 볼 수 있습니다.)
금년내로 64비트 개발을 완료해야 하는 상황이라, 기다릴수는 없고 어떻게든 해결 방법이 있어야 할 것 같습니다.
-
관리자2
2016.10.28 09:18
네. 그렇군요.
혹시 다른 PC (RAD Studio가 애당초부터 영문 OS 계정에 설치된 PC)에서도 동일한 증상이 발생하는지.. 그리고 저희가 문제되는 프로젝트를 살펴보고 테스트를 해 볼 수 있는지 부탁드립니다.
-
인콘
2016.10.28 10:50
-
관리자2
2016.10.28 11:23
감사합니다.
다만 현재 저희 엔지니어들이 교육, 출장 등으로 금일은 시간이 안됩니다.
월요일 연락 드릴 수 있도록 하겠습니다. 양해 바랍니다.
-
험프리
2016.10.31 13:27
제가 테스트한 결과 안내드립니다.
제 개발환경은 아래와 같습니다.
개발도구 : RAD 스튜디오 10.1 베를린 업데이트 1
OS : 윈도우 10 64비트
제가 테스트한 내용은 아래와 같습니다.
1, 영문 디렉토리내에서 Form Application 64비트 환경 디버깅
2, 영문 디렉토리내에서 Form Application + dll 프로젝트 64비트 환경 디버깅
3, 한글 포함 디렉토리내에서 Form Application 64비트 환경 디버깅
4, 한글 포함 디렉토리내에서 Form Application + dll 프로젝트 64비트 환경 디버깅
결론은
1, 2 항목 즉 영문 디렉토리 환경에서는 Form Application과 Form + dll 환경 모두 디버깅 가능
3, 4, 항목 즉 한글 포함 디렉토리 환경에서는 Form Application과 Form + dll 환경 모두 디버깅 불가
(한글 포함 디렉토리 여부는 윈도우 계정과 관련없으며, 소스코드 저장 경로에 한글이 포함되지 않으면 됩니다. 예> D:\Project\Project1.dpr)
추가적으로 (아시는 내용이겠지만, 모르시는 분들을 위해)
DLL 프로젝트를 디버깅 할 경우 Host Application 설정(Run > Parameter > Host Application)을 해야 디버깅 가능합니다.
Host Application에서는 디버깅하려는 DLL을 로드(정적, 동적)해야 하며,
만약 동적 DLL 로드(LoadLibrary)하는 경우 DLL 로드 이후 디버깅이 활성화 됩니다.
그리고 주의사항으로는 32비트와 64비트 프로젝트는 프로젝트 옵션 설정 값과 Host Application 설정 값이 다르게 설정됩니다.
32비트와 64비트 설정 값을 각각 확인하시기 바랍니다.(간혹 설정값이 32비트와 64비트가 다르게 설정되어 엉뚱한 DLL을 로드하는 경우가 있습니다.)
* Output Directory(프로젝트 옵션) : Project > Options > Delphi Complier > Output directory
* Host Applicaion : Run > Parameter > Host Application
추가적인 지원을 원하신다면,
문제가되는 프로젝트를 샘플형태로 제작해 업로드하시면 제가 해당 샘플로 테스트 진행해보도록 하겠습니다.
호스트 실행파일이 C# 이라는 말이 잘 이해가 되지 않습니다.
혹시 C++프로젝트에서 델파이(파스칼) dll 파일을 사용하는 상황인가요?
안타깝지만, 이 경우 64비트에서는 디버깅을 사용할 수 없습니다. 델파이 컴파일러가 객체 파일(*.o)의 DWARF 디버그 정보를 제공해 주지 않기 때문인데요 현재로서는 해당 파일을 하나의 패키지로 생성하는 것 말고는 디버깅을 할 수 있는 방법이 없습니다.
이 부분은 델파이 컴파일러에 해당 기능이 없어서 발생하는 문제이며 엠바카데로 본사에는 내년에 기능을 추가할 것으로 계획하고 있습니다.
사용에 불편함을 드려 죄송하오며 기능이 추가될 경우 별도로 연락을 드리도록 하겠습니다.