2010-05-07 4 views
4

Visual C++에서 코드에 중단 점을 설정했지만 실행하면 제목에 언급 된 오류가 표시됩니다."하나 이상의 중단 점을 설정할 수 없으며 비활성화되었습니다. 프로그램 시작시 실행이 중지됩니다."

이 질문은 스택 오버플로 (Breakpoints cannot be set and have been disabled)에 대해 이전에 묻지 만, 거기에 대한 답변으로는 내가 본 문제를 완전히 설명하지 못했습니다. 내가 볼 수있는 가장 가까운 것은 링커에 관한 것이지만, 나는 그것을 이해하지 못한다. 누군가가 더 자세히 설명해 준다면 그것은 위대 할 것이다.

필자의 경우 Visual C++에서 두 개의 프로젝트 (생산 dsw 및 테스트 코드 dsw)가 있습니다. 디버그 모드에서 두 dsws를로드하고 다시 작성했습니다. 테스트 스크립트를 통해 실행되는 프로덕션 코드에 중단 점이 필요합니다. 내 문제는 테스트가 시작될 때 중단 점이로드되지 않은 프로덕션 코드에 있기 때문에 테스트 코드를 실행할 때 오류 메시지가 나타납니다.

테스트 스크립트의 시작 부분에는 mytest_initialize() 명령이 있습니다. 나는 이것이 떨어져서 생산 dll을로드한다고 상상한다. 이 라인이 실행되면, 브레이크 포인트를 프로덕션 코드에 넣고 실행할 때까지 실행할 수 있습니다. 하지만이 줄을 실행하고 중단 점을 설정하고 테스트를 실행할 때마다 계속해야한다는 것은 상당히 성가시다.

그래서이 문제는 Visual C++이 두 프로젝트가 관련되어 있다는 것을 인식하지 못한다고 생각합니다. 이것은 링커 문제입니까? 링커는 무엇을하고이 작업을하기 위해 어떤 설정을 변경해야합니까?

미리 감사드립니다. 대신에이 질문을 기존 질문에 추가해야하는 경우 사과해야합니다. 이것이 첫 번째 게시물이므로 이것이 어떻게 작동해야하는지 잘 모르겠습니다.

[업데이트 1] Chris O가 문제를 확인했다고 생각합니다. 이 작업을 수행하기 위해 프로젝트 설정을 사용하는 방법을 배울 수 있다면 추가 업데이트를 추가하겠습니다.

+0

당신은 이후 VS 여전히 변경되었지만 한 코드를 생성 일부 (자동)에서 설정 한 중단 점을, 있었나요 해당 위치에 중단 점을 넣으려고합니까? – slugster

답변

1

dsw 파일을 언급 한 이후 VC6을 사용하는 것처럼 들립니다. 나는 그것이 VC6에서 얻는 것만 큼 좋다고 생각한다. 모듈이 LoadLibrary에서로드 된 후에 수동으로 중단 점을 추가해야한다. 실제로 프로젝트 디버그 설정이있을 수 있으므로 프로젝트를 디버깅 할 때로드 할 DLL을 지정하면 F5를 누를 때 중단 점이 활성화됩니다.

또한 mytest_initialize()가 호출되었다는 것을 알고 나면 디버거를 연결하여 중단 점을 활성화 할 수 있습니다.

+0

네가 틀렸다. 나는 VC6을 사용 중이다. VC6에서 직접 테스트 스크립트를 실행 중이므로 디버거가 바로 연결될 것입니다. 프로젝트 설정 -> 디버그 대화 상자에서 빠르게 확인했습니다. 이걸 여기서 고칠 수있을 것 같습니다. 왼쪽 창에서 테스트 프로젝트를 선택하면 Category : Additional DLLs 아래에 프로덕션 DLL을 추가 할 수 있습니다. 불행히도 이것은 어떤 차이를 만들지 않습니다! 이것으로 좀 더 놀아 보겠습니다. 문제를 해결할 수있는 방법이되어야합니다. – sam

0

가끔이 문제가 발생했지만 일부 코드 대체 작업으로이 문제를 항상 전달합니다.

Here은 어떤 녀석 게시판이며, 어떻게 수정 했습니까?

희망이 있습니다.

0

내 경우에는 활성 프로젝트로 중단 점을 포함하는 DLL 프로젝트를 설정하고이 프로젝트의 디버그 설정을 변경 (프로젝트 >> 설정 >> 디버그 탭을 마우스 오른쪽 버튼으로 클릭)하여 실제로 실행되는 프로젝트를 가리키고이 문제를 해결했습니다. DLL에 액세스합니다. "디버그 세션 용 실행 파일 :"및 "작업 디렉토리 :"는 실제로 실행하려는 실행 파일과 해당 디렉토리에 설정해야합니다.

희망 사항입니다.

0

마우스 오른쪽 단추로 클릭 한 프로젝트 >> 설정 >> 링크 탭 디버그 정보를 링크에 검사를 생성에 체크 점진적으로