2012-08-30 2 views
6

너비가 8 인 float의 긴 2D 배열의 서식있는 인쇄물을 얻으려고합니다.GDB 메모리의 너비를 검사하는 방법 (x) 또는 print (p) 명령?

(gdb) p/f *(0x81000000)@16 
$27 = {0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0} 

필수 : ​​

(gdb) x/16f 0x81000000 
0x81000000: 0 0 1 0 
0x81000010: 2 0 3 0 
0x81000020: 4 0 5 0 
0x81000030: 6 0 7 0 

p 명령을 이용하여, I은 포맷되지 않은 출력 단자의 폭을 얻을 다음 x 명령을 사용할 때, I는 어레이는 네 개의 열 테이블로 인쇄되는 출력, 뭔가 같은 :

(gdb) x/16f 0x81000000 
0x81000000: 0 0 1 0 2 0 3 0 
0x81000020: 4 0 5 0 6 0 7 0 

나 :

,

특정 너비의 출력을 포맷하는 간단한 방법이 있습니까?

답변

0

사용 파이썬 스크립팅 :

나는이 경우, 꽤 애매한 아주 가까이 생각 :

python print "\n".join(", ".join(gdb.execute('x/f 0x%x' % a, False, True).split()[-1] for a in range(s, s+32, 4)) for s in range(0x81000000, 0x81000040, 32))

+0

감사합니다. 나는 파이썬에 전혀 익숙하지 않다. 이걸 gdb 프롬프트에 입력해야합니까? – ysap

관련 문제