2008-09-30 4 views
2

일부 코드의 기존 특성으로 인해 Microsoft는 여전히 Microsoft Visual 6.0 (SP6)을 사용하고 있습니다. 처음으로 디버깅하기 위해 실행중인 프로세스에 연결하면 프로세스에 침입했을 때 소스 파일의 위치를 ​​알 수 없습니다. 따라서 소스 파일 이름이 주어지면 소스 트리에서 해당 디렉토리로 이동하도록 요청합니다. 그것은이 디렉토리를 기억하므로 동일한 디렉토리를 두 ​​번 입력 할 필요가 없지만 여전히 고통 스럽습니다.Visual C++ 6.0에서 소스 파일을 찾기위한 사전 설정 위치

내 트리에있는 모든 소스 파일 디렉토리로 VC6을 사전 구성하는 방법이 있습니까? 우리 프로젝트는 DSP가 아닌 메이크 파일 (nmake 사용)을 사용하여 빌드되었습니다.

답변

1

소스 파일 경로는 디버깅 정보 (Program Database, .pdb)에 기록됩니다. 머신의 빌드 트리를 빌드 된 머신과 동일하게 만드십시오.

+0

마이크, 우리는 건물입니다 (cl.exe 및 링크 사용).exe) 절대 경로 이름 없이는 PDB에 파일의 전체 경로가 없다는 것을 의미합니다 (또는 추측하고 있습니다). 그래서 나는 소스 파일 디렉토리를 지정하는 다른 방법을 사용하고있다. –

0


예.


도구
옵션
DIRECTORY (탭)

에 가서 당신은 SOURCES/라이브러리/디렉토리 위치가 포함 설정할 수 있습니다. 이 값은 작업 공간 내의 모든 프로젝트에 적용됩니다.


이러한 값을 설정하면 직접 메이크 파일을 사용하여 정보를 볼 수 있는지 알 수 없습니다.

0

의도적으로 소스 트리를 특정 최상위 디렉토리에 연결하고 싶지 않으므로 절대 경로 정보가 PDB 파일에 기록되지 않습니다. 배포 될 때 소스 트리를 빌드 시스템에서 사용한 것과 같은 위치에 놓을 수 없습니다.

EvilTeachsolution은 실제로 원본 파일이 수 백개의 디렉토리로 구성되어 있지만 수동으로 입력하는 것이 다소 번거롭기는하지만 원하는 결과를 제공합니다. 또한 개발자가 주어진 시간에 실행중인 여러 원본 트리를 가질 수 있으므로 주어진 실행 파일을 디버깅 할 때 해당 트리 사이를 전환 할 수 있어야한다는 문제가 있습니다.

난 이후 발견 프로그래밍 할 수있는 (물론, 명령 줄에서 적어도) 직접 레지스트리를 업데이트하여 소스 디렉토리의 집합을 전환하는 것이 :

REGEDIT4 

[HKEY_CURRENT_USER\Software\Microsoft\Devstudio\6.0\Build 
System\Components\Platforms\Win32 (x86)\Directories] 
"Source Dirs"="<path1>;<path2>" 

너무 나쁜, 그리고 확실히 할 것 장난.

그러나 해결책은 모든 소스 경로 (세미콜론으로 구분 된 디렉토리 목록)를 포함하도록 SOURCE 환경 변수를 설정하는 것이 었습니다. 매우 간단한 배치 파일이이를 수행 할 수 있으며 다른 트리를 전환 할 수 있습니다. 그런 다음 읽기 SOURCE에서 말하는 옵션을 사용하여 명령 줄에서 비주얼 C++를 최대 실행 (그리고, LIB 및 경로를 포함) 환경에서 :

msdev /useenv 

도구 -> 옵션에서 보면, 당신은 볼 수 있습니다 SOURCE의 디렉토리가 실제로로드되었는지 확인하십시오. 그런 다음 실행중인 프로세스에 연결할 수 있었으며 디버거는 디버깅 한 모든 코드를 찾을 수있었습니다.

생활이 훨씬 쉬워졌습니다.

+0

멋진 솔루션. 덕분에 . – EvilTeach

관련 문제