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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[27727] Rad Studio 10.2.3 IDE 인젝션
빌더(TWx) [builder] 5681 읽음    2018-04-08 08:35
Rad Studio를 이용해서 디버깅 하다보면 아래와 같은 Debug Output 메세지가 줄줄이 나오는 경우가 있는데...


Debug Output:
shell\shell32\syncrootmanager.cpp(2627)\shell32.dll!756D637A: (caller: 756D7422) ReturnHr(4) tid(28ac) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(2257)\shell32.dll!756D743C: (caller: 738731A3) ReturnHr(5) tid(28ac) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(818)\shell32.dll!756D7474: (caller: 738731A3) ReturnHr(6) tid(28ac) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
internal\sdk\inc\wil\ResultMacros.h(5663)\windows.storage.dll!73F0911B: (caller: 73ED3E86) ReturnHr(2) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
internal\onecoreuapshell\private\inc\cloudfiletelemetry.h(98)\windows.storage.dll!73ED3BDF: (caller: 73ED3A32) ReturnHr(3) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(2751)\shell32.dll!756D76E0: (caller: 756DA739) ReturnHr(7) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(2657)\shell32.dll!756DA76B: (caller: 756D6361) ReturnHr(8) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(2627)\shell32.dll!756D637A: (caller: 756D7422) ReturnHr(9) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(2257)\shell32.dll!756D743C: (caller: 738731A3) ReturnHr(10) tid(fc4) 80070490 요소가 없습니다.

Process Project1.exe (12268)
Debug Output:
shell\shell32\syncrootmanager.cpp(818)\shell32.dll!756D7474: (caller: 738731A3) ReturnHr(11) tid(fc4) 80070490 요소가 없습니다.



위와 같은 메세지가 나타나는 이유는...

쉘폴더, 쉘 아이콘, 파일오픈 다이얼로그 박스 등 SHELL COM 과 관련해서 새로운 API를 사용하지 않고
기존의 deprecated API를 사용하는 프로그램들이 시스템에 설치되어 있을 경우나...

시스템 업그레이드로 인해서 사용되지 않는 OverlayShell Icon 핸들러가 남아 있는 경우. 예를들면 One Drive 프로그램이
업그레이드 과정으로 기존의 OverlayShell Icon 핸들러가 사용되지 않는 GUID 엔트리로 남아 있는 경우 등.

프로그램에서 SelectDirectory() 나.. 파일 오픈다이얼로그를 사용할 때 직간접적으로 Shell COM 레이어가
로드되면서 Sanity 체크가 일어날 때 많이 나타나게 되는데, 프로그램 실행에는 영향을 미치지 않지만 프로그램을 디버깅 할 때는
이런 메세지들을 필터링해서 안보이게 하는 게 편할 겁니다.

Rad Studio 10.2.3 의
C:\Program Files (x86)\Embarcadero\Studio\19.0\bin 디렉토리에서

coreide250.bpl 파일을 리네임 하든가, 백업 받아 놓고

첨부한 coreide250.bpl 파일과 ijt.dll 파일.. 2개를 C:\Program Files (x86)\Embarcadero\Studio\19.0\bin 디렉토리로
IDE가 로드되어 있지 않은 상태에서 카피 해주고 디버깅 하면... 필터링이 될 겁니다.

IDE를 인젝션해서 필터링하도록 만든 건데, Windows 10 RS4 빌드가 공식 배포되면 Rad Studio 10.3 도 새로 나올 것이므로
64비트 디버깅 시에는 별도로 인젝션하지 않고, 32비트 디버깅 시에만 인젝션 하도록 만들었고. 필요한 분들 한시적으로 사용하세요.


위에 언급된 디버깅 메세지들 만 필터링 하도록 IDE를 인젝션 하기 때문에...
사용자가 만든 응용 프로그램이나 DLL에서 OutputDebugString() API로 출력되는 디버깅 메세지들은 정상적으로 볼 수 있습니다.


뽀뽀중 [kissjung]   2018-04-16 08:15 X
첨부한 파일을 설명하신대로 복사를 하고 실행을 해 보았습니다.
그동안 발생했던 Debug Output 메세지가 보이지 않네요. ^^;

필요없는(?) 메세지가 사라지니, 디버깅 문자 보기가 편해졌습니다.

감사 합니다.

+ -

관련 글 리스트
27727 Rad Studio 10.2.3 IDE 인젝션 빌더(TWx) 5681 2018/04/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.