タグ

ブックマーク / www.katsuster.net (3)

  • コグノスケ GCCを調べる - memmoveのfoldingその1

    VSCodeを使ってWindowsからLinuxアプリのデバッグ その1 目次: Linux その1、その2 同じことをしている人があまり居なさそうだったので、メモしておきます。 きっかけはGCCのコードをGDBのCUIモードで追っていて辛くなったことです。GCCのコードは超ぐちゃぐちゃの悲惨なコードで非常に追いづらく、GDBをもってしても何が起きているのか把握するのは困難です。せめてデバッガの画面くらいはGUIにして、見やすくできないか、と考えました。 WindowsからLinuxアプリのデバッグ、それぞれの役割 想定する構成は上記のとおりで、Linux側にはGUIがなく(ディスプレイを繋いでいない、など)、Windows側はデバッグのみで、Linux側でその他の全て(ビルドなど)を行う想定です。 Linux側の準備 この記事を読んでいるということは、既に何かデバッグしたいアプリケーショ

  • katsuhiro/refmon/arm_port - コグノスケ

    アーキテクチャ固有のレジスタ† CPSR があるのとないのとで struct pt_regs のレジスタ数が違う。 Armadillo-9 に使われている ARM9 は CPSR を持っているので armv の方である。 CPSR レジスタがある CPU -> include/arch-arm/proc-armv/ptrace.h がインクルードされる ない CPU -> include/arch-arm/proc-armo/ptrace.h がインクルードされる もっとも CPSR が何のレジスタであってもかまわないのだが、カーネルのヘッダがこういう定義をしているため非常にやりづらい。どういうことかというと CPSR の有無によって struct pt_regs 内での ARM_ORIG_r0 の位置が変わってしまうのである。 //include/arch-arm/proc-armv/p

  • コグノスケ

    ptraceのサンプルプログラム まぶち氏からptraceのサンプルない?って言われたのでstraceを紹介しました。straceはptraceの難しいところをどうしているのか見るには良いですが、初めてptraceを使う人が見るもんじゃない気がします。 入門に使えると信じて、簡単なサンプルを作ってみたので公開。Linux専用です。 ソースコードはこちらからどうぞ。 (2008年7月25日追記)需要はなさそうなものの、一応ライセンスを明確にしました。修正BSDライセンスです。 うまくいけばトレース対象のシステムコール名がずらっと表示されるはずです。以下に私の環境での実行結果を示します。 簡易ptraceプログラムのコンパイル、実行結果 $ gcc -Wall 20080724_ptrace_simple.c $ ls -l 合計28 -rw-r--r-- 1 katsuhiro katsuh

  • 1