タグ

linuxとプログラミングに関するamerica66のブックマーク (4)

  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • memologue - シグナルハンドラを使わないでシグナルをハンドルする

    「シグナルハンドラの中でできることは非常に限られているんですよ」というお話を1年半くらい前に書きましたが、この話には続きがあって、ある特定の条件下ではこの制限を緩和することができます。今回はその方法についての解説です。sigwait(3)という関数を使います。 ※ この話、うっかり書き忘れていました。ちょっとしたきっかけで思い出したので、暇があるうちに書いておきます。 ■「シグナルを待つ」処理 〜従来の方法〜 皆様、「シグナルの到着を待つ」処理を、次のように書いてしまっていないでしょうか? // シグナルハンドラ void handler(int signo) { // この中で使って良いのは非同期シグナルセーフ(async-signal-safe)な関数のみ }を用意して、 sa.sa_handler = handler; sigaction(SIGHUP, &sa, NULL); ..

    memologue - シグナルハンドラを使わないでシグナルをハンドルする
  • シンプルなmake(AIX) - さすらいのプログラマ:楽天ブログ

    2009/08/10 シンプルなmake(AIX) カテゴリ:C言語(全般) 参考としてシンプルなmakefile TARGET = TSLOG SRC = tslog.c OBJ = $(SRC:.c=.o) CC = cc RM = rm CFLAGS = -qmbcs -qcpluscmt -c all: $(TARGET) $(TARGET): $(OBJ) $(CC) -o $@ $(OBJ) .SUFFIXES: .c .o .c.o: $(CC) $(CFLAGS) $< お気に入りの記事を「いいね!」で応援しよう いいね!0 シェアする Last updated 2009/08/10 07:14:23 AM コメント(0) | コメントを書く [C言語(全般)] カテゴリの最新記事 ちょっとした実験(1) 2011/10/28 一時的にstdoutの出力を停止する(Linu

    シンプルなmake(AIX) - さすらいのプログラマ:楽天ブログ
  • トリビアなmakefile入門

    make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.

  • 1