좋아, 나는이 기능이 존재하는지 잘 모르겠으므로 여기서 사지 않을 것이다. 내가 아는 것은 다음과 같습니다.값이 깨졌을 때 깨기
코드의 어느 부분에서 데이터 덩어리가 읽혀집니다. 코드의 해당 부분을 찾으려고합니다. (그리고 우리는 여기서 거대한 코드 기반을 말하고 있습니다 - 거의 300 개의 프로젝트에서 수만 개의 파일이 있습니다. 코드 라인에서 추측하기조차 할 수 없었습니다 - 파일 당 2000-3000은 드문 일이 아니므로 이것은 바늘/haystack 영역).이 데이터에는 식별 가능한 특정 문자열이 들어 있습니다. 메모리 덩어리가 해당 문자열로 설정된 경우 중단 점을 설정할 수 있기를 바랍니다. 내가 모르는 무엇
는 :
나는 또는이 캐릭터 라인이 어디 저장되는 경우에도, 그래서 메모리 주소 또는 변수에 중단 점을 설정할 수 없습니다 아무 생각이 없습니다. 내가 알고있는 것은 적어도 짧은 시간 동안 (아마도 하나의 함수의 범위 또는 for 루프의 한 번의 반복 만)이 값은 어딘가에입니다. 문자열 자체가 코드에 의해 무시되고 수반되는 데이터 만 저장 될 수도 있지만 문자열은 어느 시점에서 메모리에 존재해야합니다.
분명히 일반적인 중단 점을 설정할 수 없습니다. 중단 점을 어디에 둘 것인지 알고 있다면 이미 필요한 부분을 가지고있을 것이고 그러한 조치를 할 필요가 없기 때문입니다. 필자는이 코드가 어떤 프로젝트에서 발생하는지 알지 못합니다. 파일 내에서 또는 그 파일 내에서 어떤 기능을 제공하는지는 알지 못합니다.
이것은 단지 희망적인 생각입니까? 아니면 이런 종류의 일을하는 쉬운 방법이 있습니까?
이 기능은 존재하지 않으며 실현 가능성도 낮습니다. 디버거에 얼마나 많은 스트레스가 가해 졌는지 생각하십시오. 특정 값에 대해 항상 모든 메모리를 검사합니다. –
항상 모든 메모리를 검사 할 필요는 없습니다. 메모리가 실제로 변경된 경우에만 변경된 메모리 만 검사해야합니다. 예, 성능이 저하 될 수 있지만 디버그 모드 여야합니다. 그리고이 과정은 모든 종류의 최적화로 가속화 될 수 있습니다. 저는'X' 길이의 문자열을 찾고 있습니다. 그러나이 명령은'XY' 바이트 만 변경 했으므로 모니터링 할 필요가 없습니다. 등 생각하지 않습니다. 그런 도구를 만드는 것은 불가능할 것이고, 그것은 매우 유용 할 것입니다 ... –
만약 제가 정말로 * 그 일을 할 수 있다면, Microsoft의 "우회로"를 사용하여 ReadFileEx를 연결할 것이라고 생각합니다. 결코 그것을 사용하지 마십시오. 심판을 위해, 그것은 단지 그 구로 작용했다. –