投稿

2月, 2009の投稿を表示しています

[C言語] 共有ライブラリを作って呼んでみる

共有ライブラリで発生した異常をgdbで調べてみる実験をしたく、まずは、共有ライブラリを作成&実験してみた。 環境は、以下。 2.6.18-92.1.22.el5 gcc (GCC) 4.1.2 20071124 (Red Hat 4.1.2-42) 以下のファイルをそれぞれ作成してから、make; sh run.shと実行すればめでたく(?)core発生。 "Makefile" all : test_core clean :         rm -f test_core test_core.o liba.so liba.so.1 liba.so.1.0 liba.o         rm -f core.* test_core : test_core.o liba.so.1.0         gcc -g -o test_core test_core.o -L. -la test_core.o : test_core.c         gcc -Wall -g -c test_core.c -o test_core.o liba.so.1.0 : liba.o         gcc -g -shared -Wl,-soname,liba.so.1 -o liba.so.1.0 liba.o -lc         ln -sf liba.so.1 liba.so         ln -sf liba.so.1.0 liba.so.1 liba.o : liba.c liba.h         gcc -fpic -g -c -Wall liba.c "liba.h" int liba(); "liba.c" int liba() {         int i = 10 / ...

[Linux] coreファイルをgdbで調べてみる

前の記事 で採取したcoreファイル(ちょっとファイル名が違うけど)を、gdbを使って調べてみる。 gdbに実行ファイル(./test_core)をcoreファイル(./core.5857)を指定して、起動する(下記の下線部分)。 $ gdb ./test_core -c ./core.5857 GNU gdb Red Hat Linux (6.5-37.el5_2.2rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB.  Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". warning: Can't read pathname for load map: 入力/出力エラーです. Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Core was generated by `./test_core'. Program terminated with signal 8, Arithmetic exception. #0  0x080...

[Linux] coreファイルの生成設定

Linuxでは、デフォルトではcoreファイルは生成されない。以下の様にして生成されるように設定&確認。 手順 1. 設定値の確認 $ ulimit -a core file size           (blocks, -c) 0 data seg size          (kbytes, -d) unlimited scheduliing priority             (-e) 0 file size                  (blocks, -f) unlimited ..... 2. 設定 $ ulimit -c ulimit 3. 確認 3-(1) 設定値の再確認 $ ulimit -a core file size           (blocks, -c) unlimited data seg size          (kbytes, -d) unlimited scheduliing priority             (-e) 0 file size                  (blocks, -f) unlimited ..... 3-(2) 実際にcoreファイルが作成されるかどうかを確認  a. 以下のファイルを編集 $ vi test_core.c int main() {   int i = 10 / 0;   return 0; } b...

[Thunderbird] lightningからWebDAV上のカレンダーを使ってみる。

iCalendarの設定方法。 環境 Vista SP1 lightning 0.9 手順 "ネットワークのサーバに保存する"を選択 "iCalendar (ICS)"を選択し、"http://localhost/webdav/test.ics"と入力 メールを"なし"に設定 以上

[XAMPP] XAMPP(1.7.0)のWebDAVのパスワード設定

XAMPPでのWebDAVパスワードを設定する方法。 環境 Vistaに入れいているXAMPP(1.7.0)のWebDAV機能 手順 c:\xampp\apache\bin\htpasswd -bc c:\xampp\security\htpasswd.webdav <ID> <Password> 参考  C:\xampp\apache\conf\extra\httpd-dav.conf 以上

[Linux] CentOS5.2(VMware 2.0)でDVDの取り出しが出来ない!

現象 CentOS5.2をVMware上動かすと、DVDドライブが開かない。物理的にボタンを押しても開かない。CentOSのデスクトップ上から[取り出し]を選択しても開かない。CentOS5.2をシャットダウンしても開かない。 条件 CentOS5.2をVMware上動かす 頻度 必ず 原因 不明 対策 VMWare上の設定のCD/DVDの設定で"Access the drive directory"を選択 以上

[Windows] TrustedInstallerとオートギア

前述の記事「 TrutedInstallerの悪さ 」に関連して、TrustedInstallerの実行優先度を帰るツールとして「オートギア」というフリーソフトを見つけたので以下にメモ。とりあえず、TrustedInstaller.exeが起動される都度、優先度を自動で下げてくれている。画面が固まることはなくなったようだ。 環境 Windows VISTA 手順 まず、 Vectorからautogear.lzhをダウンロード 。 autogear.lzhを展開。※自分は、展開には WinRAR を使用。 展開されたautogear.exeとautogear.txtをC:\Program Files\AutoGearに移動。 スタートボタンを右クリックし、[開く(O)]を選択。"スタートアップ"フォルダへ移動。 "スタートアップ"フォルダで"C:\Program Files\AutoGear\AutoGear.exe"のショートカッタを作成。 できたショートカットを右クリックし、プロパティを開く。 [詳細設定(D)...]をクリックし、[管理者として実行(R)]をチェック。[OK]-[OK] ショートカットをクリックして、AutoGearを起動。 [オプション(O)...]-[監視]タブとクリックし、[すべてのアプリケーションの優先度を変更可能にします]をチェック。 [追加(A)...]をクリック、プログラム名に"trustedinstaller.exe"を記述。指定優先度に"通常以下"に設定。[OK]し[隠す(H)]をクリック。 最後に、スタートアップフォルダに管理者として実行するよう設定。ログオン起動の都度、UACから警告が出るが無視。 以上

[Windows] TrustedInstaller.exeの悪さ

現象 Windows使用中に、”画面が時々固まる。マウスも反応しない。暫くすると復旧する。”という現象に見舞われる。 条件 Windows VISTAで確認。 頻度 毎日数回 原因 TrustedInstaller.exeがCPUを100%近く使用することがあるから 対策 対策1 以下をWindows再起動都度実施 タスクマネージャを立ち上げる 「すべてのユーザプロセスを表示(S)」とする TrustedInstaller.exeの「優先度の設定(P)」を「通常以下(B)」に設定 対策2 オートギアを使う 記事参照 → こちら 。 以上

[CentOS] CentOS5.xでstdio.hが見つからない!

現象 C言語ソースをコンパイルすると下記エラーが発生。 error: stdio.h: No such file or directory 条件 CentOS 5.2 (他は不明) 頻度 必ず 原因 C言語ヘッダーはデフォルトではインストールされないから 対策 glibc-headersを入れる。入れ方は以下。 # yum install glibc-headers