[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:526

From: SASADA Koichi <ko1 atdot.net>
Date: Thu, 30 Jun 2005 14:57:54 +0900
Subject: [yarv-dev:526] gcc -dp

 ささだです。

 gcc に -dp なんてオプションがあったんですね。
 アセンブラ出力で各命令の長さが出てきます。


例:

	; #**************************************************
	; #[start] nop

.stabn 68,0,25,LM292-_thread_eval_body
LM292:
/NO_APP
	addl	$4, %esi	 # 79	*addsi_1/1	[length = 3]
	movl	%esi, -28(%ebp)	 # 81	*movsi_1/2	[length = 3]
.stabn 68,0,39,LM293-_thread_eval_body
LM293:
	movl	(%esi), %eax	 # 83	*movsi_1/1	[length = 2]
/APP
	jmp *%eax;
	; #[end  ] nop
	; #==================================================

/NO_APP
	jmp	*%eax	 # 39883	*indirect_jump	[length = 2]
L761:

 これを解析すれば、結構色々と楽が出来るかも。


 本当は stabs の読み方を探してたんですけどね。

	.stabs	"th:(1,4)",128,0,20,-348

 これの、(1,4) の意味がわからなくて。他は、128 から順番に「ローカル変数
を示す値」、「不明」、「ソースの行数」、「スタックの位置(bp-x)」という
意味らしいんですけど。

-- 
// SASADA Koichi at atdot dot net
//

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]