2016-08-08 2 views
0

소스 코드없이 Windows 용 Tcl/tk 응용 프로그램을 디버깅 할 수 있습니까? 응용 프로그램은 지원하지 않으며 사용할 수있는 소스 코드가 없습니다. 작동 중에 오류가 표시됩니다. 오류의 원인과 코드를 패치하여 오류를 수정할 수 있는지 여부를 알아낼 수 있습니까?Windows 용 Tcl/tk 응용 프로그램 디버깅

답변

1

패치를 작성해야하는 소스 코드 레벨 에서처럼 소스 코드가 없으면 매우 어렵습니다. 코드가 send 명령 메커니즘 (또는 comm 패키지)을 통해 노출되는 경우 약간의 진전이있을 수 있습니다. (기본적으로 Tcl에 매우 훌륭한 인트로 스펙 션 기능이 있으므로 info commands, info varsinfo body이 도움이 될 수 있습니다. info 명령과 일부 introspector도 있지만) 특히 코드의 내부 구조를 이해하지 못한다면 여전히 어렵습니다. OTOH, 나는 생산 애플리케이션이 이런 식으로 자신을 드러내 리라 기대하지 않을 것이다. 일반적으로 당신은 외부 개발을 할 때 그런 종류의 것을 비활성화합니다.

gdb와 같은 표준 디버거는 특히 Tcl 8.6 비 재귀 런타임에서 도움이되지 않습니다. (그 환경에있는 Tcl 응용 프로그램은 "일을 효과적으로"하는 것처럼 보이기 만하지만 실제로 어떻게 함께 연결되는지 나타내는 것은 아무것도 없습니다.)

하지만 가장 먼저 확인해야 할 것은 소스 코드가 실제로 있는지 여부입니다. 코드가 Starpack으로 패키지되어있을 가능성이 있으며 sdx과 같은 도구를 사용하여 변경해야하는 항목을 추출 할 수는 있지만 가능하다고 보장 할 수는 없습니다. 코드가 TDK과 같은 상업용 도구로 컴파일/가려진 경우 소스가 없기 때문에 코드를 실제로 처리 할 수 ​​없습니다. DRM이 잘 작동하지 않는다는 동일한 일반적인 원칙에 따라 TDK가 생산하는 .tbc 파일을 디 컴파일하는 것이 가능하지만 실제로는 일부 관할권에서는 기술적으로 불법이므로 도덕적으로 오히려 도덕적이므로 불법입니다. , 정말로 끔찍한 결과물을 만들어내는 경향이 있습니다.) 대신 코드의 원래 작성자에게 연락 할 수 있습니까? 그게 효과가 있다면 더 저렴하고 간단해질 것입니다 ...

실제로 사람이 읽을 수있는 코드가 있다면, sdx로 패키징되어 있어도 훨씬 많은 작업을 수행 할 수 있습니다.

+0

PE exe 코드가 Starpack으로 함께 패키지되어 있는지 확인하는 방법은 무엇입니까? 리눅스'strings file.exe' 명령은 많은 세부 사항을 보여 주지만 확실하지는 않습니다. – fxgreen

관련 문제