gdbの$ pcレジスタはx86 32ビットプロセッサのeipレジスタと異なっていますか? $ pcのようにgdbには4つの標準レジスタがあります。したがって、異なる名前の同じレジスタの場合、マッピングはどのように行われますか?他の3つのレジスタについてGDBレジスタはプロセッサレジスタと異なっていますか?
2
A
答えて
3
GDBで$pc
等、ia64
上$ip
ため、ARM
上$pc
、MIPS
とSPARC
ため、x86_64
上$RIP
ため、ix86
上$EIP
のためだけの別名である
何?私は$ sp、$ fp、$ psを意味します
どうなっていますか? ix86
で、$sp
は$esp
の別名である、x86_64
にそれは$RSP
の別名だ、MIPS
にそれは
など、$r29
の別名だ$ps
ix86
上$EFLAGS
とx86_64
の別名です。 MIPS
に相当するレジスタがないので、$ps
はそこにマップされません。
それはマッピングはGDB内部
に行われ、その後どのように異なる名前と同じレジスタであれば、コンパイル時に1対1のマップがあります。
if current target is i*86
if the user typed $pc return $eip
else if the user typed $fp return $ebp else
...
else if current target is x86_64
if the user typed $pc return $rip
else if the user typed $fp return $rbp
...
(これ:私はおよそポイントはコンパイル時に一対一
に次のようになりますGDB内部文字通りマップは、あり得なかった
実際にどのように実装されているのかは分かりませんが、1対1マッピングの説明だけです)。
関連する問題
- 1. プロセッサレジスタと命令レジスタの違いは何ですか?
- 2. プロセッサレジスタのサイズとプロセッサレジスタの数はいくつですか?
- 3. VS C++コンパイラによって使用される異なるプロセッサレジスタは何ですか?
- 4. 異なるOS JREは異なっていますか?
- 5. Template.currentData()とtemplate.dataの値はいつ異なっていますか?
- 6. JavaScriptコードは他のOSとは異なっていますか?
- 7. gdbコマンドのクリア画面はどのようになっていますか?
- 8. ビジュアルスタジオでの出力は、Firefoxとはかなり異なっています
- 9. ESPレジスタとSSレジスタの違いは何ですか?
- 10. 他のレジスタと比較してeaxの動作が異なります
- 11. WordPress WP_Queryループは実際のクエリと異なっています
- 12. ジアゾ+ Apache + mod_transform:テーマ「/」は他のパスと異なっています
- 13. FileDialogはPython3とQMLのインタフェースが異なっています
- 14. はSSISとSQLエージェントのジョブが異なっています
- 15. DebugElement.childrenはNativeElement.childrenと異なる順序を持っています
- 16. どうData.Void.absurdは⊥と異なっているのですか?
- 17. Vimで異なるレジスタを使ってOSクリップボードとの間でコピー/ペーストする方法 - 正確には?
- 18. なぜdocument.writeとconsole.logはgetElementByIdの出力が異なっていますか?
- 19. なぜnumpysの共分散は私と全く異なっていますか?
- 20. array()とarray()とはどのように異なっていますか
- 21. Webgl bindBuferとvertexAttribPointerはバッファサイズによって異なりますか?
- 22. gdbですべてのレジスタの値を読み取るにはどうすればよいですか?
- 23. CSSは元の色とは異なる色合いになっています
- 24. NHibernateの子と親は異なるキー名を持っていますか?
- 25. array.eachとarray.mapはどのように異なっていますか?
- 26. jconsoleで受信した春のmbeanとmbeanは異なっていますか?
- 27. SELECTとINSERTのOPENQUERYはどのように異なっていますか?
- 28. なぜ私はvalgrindとfork()を使って異なる出力を持っていますか
- 29. レジスタとロースタックを使用して、シンボルなしでgdbコアを分析およびデバッグする方法
- 30. []と* aはなぜ異なった動作をしますか?
そして、他の3つのレジスタはどうですか?私は$ sp、$ fp、$ psを意味します。これらのレジスタはどこにマップされていますか?また、私はコンパイルについてのポイントを1対1で得ることはできませんでした。 – Kaustav
@Kaustav私は答えを更新しました。 –
ありがとうございました。しかし、私は$ fpの別名を忘れたと思います。 – Kaustav