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