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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[28852] Rad Studio 10.4 리모트 디버거 버그 패치 (10.3.3 Rio 패치 추가)
빌더(TWx) [builder] 4316 읽음    2020-06-13 18:58
patch.10.3.3.rar 1.2MB Rad Studio 10.3.3 Rio 패치
Rad Studio 10.4 버전 리모트 디버거 버그패치.

처음에 컴파일 해서 실행할 경우나, 디버깅 세션 종료 후 F9눌러서 디버깅 세션을 다시 시작하면
리모트 디버깅을 할 수 있으나...

소스파일을 수정했을 경우에는...

다시 F9 눌러 디버깅 세션을 시작하면
리모트 디버거에 버그가 있어서 디버깅을 할 수 없는 문제를 갖고 있고
디버깅을 다시 시작하려면 리모트 쪽에서 디버거 커널 프로세스를 강제로 Kill 해야 한다.

그리고 이 버그는 델파이 리모트 디버거도 다를 게 없다.

강력한 C++언어가 있는데 어정쩡한 파스칼 언어 쓸 이유도 없고
여기선 델파이 리모트 디버거 버그는 고려하지 않고, C++ Win32 리모트 디버거의 버그만 패치할 것이다.

엠바에서 리모트 디버거 버그를 손대지 않고 방치하고 있으니 직접 패치를 만들어 쓸 수 밖에...



패치방법:

리모트쪽 Paserver가 설치되어 있는 디렉토리에서
paserver.exe 를 rename 하거나 백업 해 놓고...

첨부한 패치파일 paserver.exe 와 paserver.hk.dll 두개의 파일을 리모트 쪽 Paserver가 설치되어 있는 디렉토리에
카피해주면 된다.


패치한 후에는...

소스코드 수정한 상태에서 F9눌러 디버깅 해도 정상적으로 C++ Win32 리모트 디버깅을 할 수 있을 것이다.



추가:  Rad Studio 10.3.3 Rio 리모트 디버거 버그패치

Rad Studio 10.3.3 Rio 용 리모트 쪽 Paserver 가 설치도어 있는 디렉토리에
첨부한 patch.10.3.3.rar 압축을 풀어서 카피,


그 아이 [tsirorret]   2020-06-14 02:29 X
감사합니다.
사실 전 거의 리모트디버깅은 할 일이 없습니다. 보랜드 시절부터 이 툴은 저 혼자 쓰다 보니 다른 협업이 거의 없고 또한 장비를 컨트롤 할 때도 노트북컴에 설치해서 쓰다 보니 그렇게 필요하지 않습니다.
다만, 이렇게 까지 해주시는 것이 늘 감사합니다. 그리고 커파일러의 내부의 이야기를 듣는 것 만으로도 즐겁습니다. 거의 컴파일러를 들여다 보지 않고 살고 있고,  하다 안되면 마이크로소프트의 제품을 사용하면 되니까요. 그런데 매번 해결책을 주시니 감사합니다.
빌더(TWx) [builder]   2020-06-15 10:53 X
리모트 디버깅은 협업이나 장비를 콘트롤 할 때만 필요한 게 아니고.

고객이 사용하는 OS가 Windows 10 일수도 있고, Windows 7, Windowns XP, Windows Server 2013, 2016, 2019 등 고객 마다 다양한
OS 환경일 수 있는데...

제 각기 다른 환경에서 프로그램이 어떤 특성을 갖고 실행되는지 확인해야 한다고 할 때,,.
리모트 디버깅 기능을 사용하지 않으면... 각기 다른 OS를 대상으로 디버깅 하기 위해 여러 대의 PC가 필요하고
거기다 또 다른 OS가 설치되어 있는 PC 마다 개발 툴 까지 설치해야 하죠.

그러나 리모트 디버거를 이용하면 개발 툴이 설치되어 있는 PC 하나만 있으면 되고
VMWare나 Hyper-V 를 이용해서 필요한 OS를 설치하면 되고, 일일히 개발 툴 까지 설치할 필요 없이 Guest OS에
리모트 디버거만 설치하면 되므로 효율적인 디버깅이 가능하죠. OS 별로 여러대의 PC를 사용할 필요가 없으니.
빌더(TWx) [builder]   2020-06-15 10:59 X
엠바 애들은 정말 아마츄어 같이 툴을 엉터리로 만들어 놔요.

로컬 디버거에 IPC 메카니즘으로 Shared memory 기법을 이용하면 간단하고 효율적일 것을 소켓을 이용하질 않나.

리모트 디버깅 시에도 디버깅 심볼 파일을 리모트로 카피해서 사용할 필요 없이
VC++ 처럼 이미 컴파일러가 로컬에서 디버깅 심볼 파일을 생성해 놓았으므로 이걸 그대로 로컬에서 사용하면 됄 것을.
엠바 툴은 리모트로 카피해서 사용하기 때문에 리모트와 로컬 사이에서 디버깅 심볼 정보를 사용하기 위해선
네트웍으로 패킷을 주고 받는 과정이 필요해서 리모트 디버깅이 느려지거 든요.

VC++ 리모트 디버거는 심볼파일을 리모트로 카피하지 않고 로컬에서 직접 처리하기 때문에 리모트 디버깅이라도 마치 로컬 디버거를
사용하는 것 처럼 빠르게 사용할 수 있는데 말이죠.

엠바 애들 프로그램 만드는 수준을 보면...
그 아이 [tsirorret]   2020-06-16 08:58 X
저도 VC는 리모트 컨트롤을 많이 쓰는데, C++Builder는 너무 에러가 많아 안쓴지 오래되었습니다.
김시환 [godson2]   2020-06-17 13:30 X
아니 이런걸 만들어 주시다니.. 최근 몇주간 PAServer  사용하면서 짜증이 많이 났었는데 앞으로는 짜증이 좀 줄어들 듯 합니다.
감사합니다. 그런데 이렇게 개인도 만들 수 있는걸 엠바에서는 왜 아직까지도 수정을 안하고 있었을 까요?? 안한건지 못한건지 그게 더 궁금하네요.. 그리고 지금 올려 주신 것은 시드니 버젼에서만 되는 것인가요?? 리오에서는 호환이 안돼나요??
왜 PAServer는 개발툴의 버젼이 변경되면 매번 같이 변경되어야 하는지 잘 모르겠습니다. 동일한 버젼으로 사용할 수 있어야 하는거 아닌가요??
빌더(TWx) [builder]   2020-06-18 14:04 X
종속성은 델파이 컴파일러로 부터 시작합니다.
VC++ 같은 경우 어지간해선 컴파일러 버전이 달라도 .obj 파일 구조가 호환성을 갖고있지만
델파이로 컴파일된 .dcu 는 버전간 호환성이 없어요.

ISO 같은 어떤 국제표준도 없고 자기들 독단적으로 마음대로 바꿔가면서 표맷에 변경을 가해버리기 때문에
툴 버전간에 호환성이 없고, 이로인해 RTL, VCL 런타임 패키지들도 툴 버전에 종속돼 버립니다.


그리고...

디버깅 정보 포맷도 디테일하게 들어가면 버전 마다 차이가 있는데... 댓글에 언급되어 있는대로
디버깅 심볼정보를 로컬쪽에서 파싱하면 리모트쪽 코드가 종속성을 가질 필요가 없으나
엠바는 디버깅 심볼 파일을 리모트 쪽으로 카피해서 파싱을 리모트 쪽에서 처리하기 때문에
리모트 디버거가 개발 툴이 바뀔 때 마다 변경 될 수 밖에 없죠. 처음부터 리모트 디버거 설계를 잘못한 케이스.

그리고 몇 년 째.. 버그를 방치하고 있는 것은...
게으르다. 혁신과는 거리가 멀다. 매너리즘에 빠져있다. 그리고 기술적인 역량도 없다. 대충 그런 이유 아니겠습니까.

Rad Studio 10.3.3 Rio 는 시스템에서 삭제한 상태라 확인해 볼 수 없고..
빌더(TWx) [builder]   2020-06-19 14:26 X
시간 나면 Rad Studio 10.3.3 Rio 버전의 리모트 디버거 버그 패치도 만들어 올려보죠.

지금은 처리해야 할 일들로 바빠서...

+ -

관련 글 리스트
28852 Rad Studio 10.4 리모트 디버거 버그 패치 (10.3.3 Rio 패치 추가) 빌더(TWx) 4316 2020/06/13
28853     Re:Rad Studio 10.4 리모트 디버거 버그 패치 질문 2190 2020/06/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.