고주파 타이머 또는 센서의 값을 디버깅하려면 매 x 번만 발생하는 중단 점을 구성하는 것이 좋습니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?10 번 째로 LLDB 브레이크 포인트를 설정할 수 있습니까?
Xcode에서 "x 번 중단하기 전에 무시"옵션을 시도했지만 처음으로 작동합니다. LLDB 명령을 사용하여이 카운터를 재설정 할 수 있습니까?
고주파 타이머 또는 센서의 값을 디버깅하려면 매 x 번만 발생하는 중단 점을 구성하는 것이 좋습니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?10 번 째로 LLDB 브레이크 포인트를 설정할 수 있습니까?
Xcode에서 "x 번 중단하기 전에 무시"옵션을 시도했지만 처음으로 작동합니다. LLDB 명령을 사용하여이 카운터를 재설정 할 수 있습니까?
당신은이 언제든지 카운터 무시 재설정 할 수 있습니다 참고, 중단 점 w hich는 "ignore count"를 만족하지 못하기 때문에 breakpoint 명령이 실행되지 않습니다. 당신은, 당신은 자동으로 중단 점마다 열 번째 시간을 중지하기를 원한다면 지금 바로 수행
(lldb) break set -l 10 -i 10 -N my_bkpt
Breakpoint 1: where = foo`main + 46 at foo.c:10, address = 0x0000000100000f5e
(lldb) break com add
Enter your debugger command(s). Type 'DONE' to end.
> break modify -i 10 my_bkpt
> DONE
(lldb)
가 그럼 그냥 충돌 각 정류장에서 "계속"당신이 한 번씩 10 번 브레이크 포인트에 타격을 줄 것으로 예상된다.
참고, 내가 추가 한 중단 점 명령에서 중단 점 번호를 알 필요가 없으므로, 중단 점 (-N
옵션)의 이름을 지정할 수있는 기능을 사용했습니다. 이 중단 점을 명령 파일 등에 저장하는 것이 편리합니다.
lldb에서 영구 변수 (카운터)를 정의 할 수 있는지 확실하지 않습니다. 카운터 헬퍼 (counter helper)로 사용하는 하나의 전역 변수를 항상 가질 수 있으며이를 단순히 릴리즈 빌드에 포함시키지 마십시오.
class BrCounter{
static var freq = 10
}
편집 중단 점 다음과 같은 조건 추가 :
이BrCounter.freq--;
if(BrCounter.freq == 0){
BrCounter.freq = 10;
return true;
}else{
return false;
}
Oneliner :
(lldb) break modify -i <NEW_VALUE> <BKPT_SPECIFICATION>
:
BrCounter.freq--; if(BrCounter.freq == 0){ BrCounter.freq = 10; return true; }else{ return false; }
Xcode를 사용하는 경우 Xcode의 중단 점 편집기에서 "중단 수정"줄을 중단 점 명령으로 추가하여 동일한 작업을 수행 할 수 있습니다. 이 경우 Xcode는 아직 중단 점의 이름 지정을 지원하지 않으므로 중단 점 번호를 가져야합니다. lldb 콘솔에서 "break list"명령을 실행하여 찾을 수 있습니다. –