본문 바로가기

[Debugging] Tips

[TRACE32] 메모리 덤프에서 검색(서치)하는 명령어: data.find

TRACE32를 사용하다 보면 메모리 덤프에서 특정 데이터를 검색하고 싶은 경우가 있습니다.
이 때는 data.find 명령어를 사용하면 됩니다.
 
다음은 TRACE32에서 릴리즈한 data.find 관련 스팩 문서(general_ref_d.pdf)의 내용입니다.
 
Format: Data.Find [<address_range> [%<format>] <data> | <string> [/<option>]]
<format>: Byte | Word | Long | Quad | TByte | HByte | Float .<format> | BE | LE
<option>: Back | NoFind
 
; search for byte 0x3f in the specified address range
Data.Find 0x100--0xfff 0x3f
 
; search the next byte x3f
Data.Find
 
; search for specified string
Data.Find 0x100--0xfff "Test"
 
; search for 32 bit value 0x00001234 in big endian mode
Data.Find 0x100++0xeff %Long %BE 0x1234
 
; search backward for 16 bit value 0x0089
Data.Find 0x100++0xeff %Word 0x89 /Back
 
; search for the float 1.45678 in IEEE format
Data.Find 0x4e00--0x4eff %Float.Ieee 1.45678
 
자, 그럼 0x80100000와 0x80200000 메모리 구간에 0xDEADBEEF 데이터를 검색하려면, 어떤 명령어를 입력해야 해야 할까요? 다음과 같이 입력하면 됩니다.
 
data.find 0x80100000--0x80200000 0xDEADBEEF
 
위와 같이 명령어를 입력하면 TRACE32에서 다음과 같은 결과 화면을 볼 수 있습니다.
 
 
 
Written by <디버깅을 통해 배우는 리눅스 커널의 구조와 원리> 저자