2013-09-04 1 views
2

중단 점 삽입을 자동화 할 수 있습니까? 예를 들어, 특정 유닛 내부의 모든 프로 시저를 시작할 때와 종료 할 때 특정 (동일한) 조건부 중단 점을 삽입해야합니다. 이를 수동으로 수행하려면 지루하고 시간이 많이 소요될 수 있으므로 자동화 된 방법을 찾고 있습니다.중단 점 삽입을 자동화 하시겠습니까?

+5

필자는 v1이 출시 된 이후로 Delphi에서 작업 해 왔으며 현재 1MM LOC 이상의 여러 프로젝트가 있습니다. 나는 한 번도이 기능을 사용할 필요가 없었습니다 (그리고 나는 당신이 누군가를 찾지 못할 것이라고 의심합니다). 이게 당신이 필요하다고 생각하게 만드는 정확하게 무엇입니까? –

+0

귀하의 의견 끝에 질문에 대답하기 "정확히 당신이 필요하다고 생각하게하는 것은 무엇입니까?": 나는 특정 공공 변수가 특정 가치가되는 곳을 빨리 찾고 싶습니다. 이 조건은 'MyVariable = AValue '인 모든 프로 시저의 시작과 끝 부분에 조건부 중단 점을 삽입하여 쉽게 수행 할 수 있습니다. – user1580348

+2

또는 변수가 변경되면 트랩되는 데이터 중단 점을 설정 한 다음 콜 스택을보고 마지막으로 실행 된 코드를 확인할 수 있습니다. 도움말 색인을 참조하십시오. '중단 점 설정, 데이터 중단 점 설정' –

답변

11

아니요 이렇게하려면 IDE에 기능이 없습니다.

원래 질문에 대한 귀하의 의견을 토대로 실제로하려는 것은 글로벌 ("공용") 변수가 변경되는 곳을 감지하는 것입니다. 이를 수행하는 방법은 변수가 변경 될 때 트립 된 Data Breakpoint을 설정 한 다음 콜 스택을보고 마지막으로 실행 된 코드를 확인하는 것입니다. (도움말 파일에서 Delphi 2007의 도움말 색인에서 "중단 점, 데이터 중단 점 설정"또는 XE4 도움말 (위에서 링크 된)의 "중단 점 속성, 데이터 중단 점"을 검색하여 찾을 수 있습니다.

보고 싶은 주소를 물어보십시오. 그러나 @VariableName도 함께 작업하십시오 (스택 (로컬) 변수를 사용하면 그렇게하면 앱이 불안정해질 수 있음을 알리는 대화 상자가 나타나고 그렇게 할 것인지를 묻는 메시지가 표시됩니다)

@DavidHeffernan이 주석에서 지적했듯이 더 나은 해결책은 공용 필드를 설정자로 설정 한 다음 해당 설정기를 정상 중단 점으로 설정하는 것입니다.

+0

@DavidHeffernan : 마지막 단락에서 대안으로 세터 제안을 추가했습니다. 이 질문에 대한 답변을 게시하는 경우 해당 추가 사항을 삭제 (또는 알려 주시면 알려 드리겠습니다)하여 수정하십시오. –

+0

나에게 답이없고, +1이 달려있다. –

0

예 *)

중단 점은 어셈블러 코드를 삽입 할 수

(How to simulate a Delphi breakpoint in code? 참조)

asm int 3 end; 

자동 삽입 (및 제거) 당신이 간단한 작업은 중단 점을 필요로하는 곳에서이 코드의 수행 도구로 소스 코드 도구 (예 : 델파이 및 기타 언어 용 프로파일 러)가 표시됩니다.

나는 쉽게 말할 수는 없지만 가능합니다.

*) 당신은 프로그래머 ;-)

+1

당신은 쉽지 않다고 말하지 않았다. 너는 사소한 것이라고 말했다. 그 용어들 사이의 구별은 무엇입니까? 소스 코드 instrumenter를 작성하는 것이 사소한 일이라고 나는 정확하게 말하지 않을 것입니다. 첫 번째 단계는 파서를 작성하는 것입니다. 공식 문법을 게시해도 어려울 수 있습니다. –

+0

@RobKennedy 대신 "사소한 것입니다."이 문제는 [Complexity P] (http://en.wikipedia.org/wiki/P_%28complexity%29) "- 전문가 포럼에 있음)라고 말할 수 있습니다. – mjn

+1

어떤 소스 코드 도구 도구가 * CUSTOM * 코드를 소스 코드에 삽입 할 수 있습니까? 예를 들면 다음과 같습니다. 1. 어떤 프로 시저의 시작/종료시 2. 사용자 정의 식별자 등을 포함하는 모든 단일 문 앞/뒤에 2. – user1580348

2

중단이 프로젝트 DSK 파일의 유사한 이름 섹션에 저장되어있는 경우. 올바른 설정을 찾으려면 IDE에서 하나의 중단 점을 수동으로 설정하십시오. 그런 다음 DSK 파일에서이 중단 점을 복사하여 필요에 맞게 조정하십시오.

올바른 줄 번호를 찾는 데는 문제가 해결되지 않습니다.

+0

DSK 파일이 아직 존재합니까? 나는 델파이 2009 년 이후로 그들을 기억하는 것을 잊을 수 없다. – TLama

+0

@traama, 네, 그렇습니다. –

+2

@TLama : 프로젝트 옵션 인 IIRC에 프로젝트 바탕 화면을 저장하기위한 확인란을 선택하는 경우에만. –