タグ

Tipsとasmに関するsyo-yuのブックマーク (2)

  • disassembleによるデバッグの方法 - mir the developer

    開発環境でのバイナリやデバッグバイナリではないもの、すなわち、 障害解析対象のプログラムは-gが付いていない(プロダクション用なら当然) というようなバイナリからとれたstacktraceを手がかりにsignal 11の位置を特定する方法について書きます。 (以前よりも少しやりかたを改善できたのでメモしておきます。もっと簡単にできる方法があればコメント下さい) 16進数のstacktraceを確認 まずエラーログを見る。mysqldの場合はエラーログにstacktraceを吐いてくれるので別にcoreファイルがなくても大丈夫。吐いてくれないプログラムの場合は"ulimit -c unlimited"でcoreを出すようにしておいてbtする。 こんな感じの16進数のstacktraceが取れる。 0x5c4ceb 0x6267de 0x626e63 ...hoge.logとでもしておく。 バ

    disassembleによるデバッグの方法 - mir the developer
  • fnami: Assembler

    アセンブラでの高速化 はじめに 共通/80286以前 80386以降 80486以降 Pentium PentiumPro以降 Pentium4 高速化の例 主な命令一覧 参考文献 はじめに アセンブリ言語でプログラムを書くということは、プログラムに最高の自由度と性能を与えるということである。アセンブリ言語ではコンピュータの持つ機能をすべて使えるので、高級言語では不可能だった処理が可能になるし、高級言語からは見えないCPUの機能を利用してプログラムを高速にしたり、プログラムを小さくしたりすることができる。特にインテルの8086とその後継プロセッサ(86系プロセッサ)の場合、アセンブリ言語で書き直すだけでプログラムが大幅に小さく、そして速くなることは多い。しかし、ただ単純にアセンブリ言語で書いただけでは、コンピュータはその来の力を発揮しているとは言い難い。コンピュータには、もっと速く実行す

  • 1