2010年6月10日木曜日

class final 領域の初期化

public class Eval {

private static final HashMap sSceneResources
= new HashMap();


public String getString(Integer toget) {
String ret = (String)sSceneResources.get(toget);
return ret;
}

static {
sSceneResources.put(2,new String("2"));
sSceneResources.put(3,new String("3"));
}
}

2010年3月7日日曜日

gdb でソースを解析する

gdb でソースを解析する

1. coredumpを有効化
ulimit -c unlimited

2. レジスタの表示
(gdb) info reg

3. 特定のレジスタを表示する
(gdb) p $eax

4. x 特定のメモリの中身を表示する
(gdb) x $pc //通常表示
(gdb) x/i $pc //機械命令として
(gdb) x/10i $pc //pcから10個の機械命令として

5. x86プロセッサの場合、PCはeipレジスタで、FPはebpレジスタです。

6. (gdb) frame でframe情報を表示し、
(gdb) frame number でframe を切り替える。

2010年2月18日木曜日

emacs & svn

下記プラグインを利用する。
psvn.el

こいつを~/.emacs-dirに保存し
~/.emacsを編修する

###################
(setq load-path
(append
(list (expand-file-name "~/.emacs-dir/")) load-path))

(require 'psvn)
###################

使い方についてpsvn.elを開いて参照してください。

2010年2月7日日曜日

Ubuntu でパッケージのソースコードを入手する

元ネタ:
http://masaoo.blogspot.com/2009/07/ubuntu.html

あるコマンドのソースコードを調べてみたいとか、見てみたいということがあります。
そんなときは apt-get で簡単にソースコードを取ってくることができます。

以下は dig コマンドのソースを取ってくる場合の例。
1. which コマンドで dig コマンドの保存場所を調べます。

# which dig
/usr/bin/dig

2. dpkg コマンドで dig コマンドが含まれるパッケージを調べます。

# dpkg -S /usr/bin/dig
dnsutils: /usr/bin/dig

3. dnsutils のソースコードを apt-get で取得します。

# mkdir dig
# cd dig
# apt-get source dnsutils

4. ls で見るとこんな感じになります。

あとは bind9-9.4.2.dfsg.P2 ディレクトリ内を調べます。
他のコマンドでも同様のやり方でいけます。

# ls
bind9-9.4.2.dfsg.P2 bind9_9.4.2.dfsg.P2-2ubuntu0.1.dsc
bind9_9.4.2.dfsg.P2-2ubuntu0.1.diff.gz bind9_9.4.2.dfsg.P2.orig.tar.gz

投稿者 まさお 時刻: 19:40
ラベル: Ubuntu

2010年1月23日土曜日

bash コマンドの結果を配列として格納する

コマンドの結果を配列として格納する。

$ls_result=($(ls))
$echo ${ls_result[@]}

2010年1月17日日曜日

C言語defineテクニック

以下定義の理由
#define DUMP_WRITE(addr,nr) do { memcpy(bufp,addr,nr); bufp += nr; } while(0)


if (addr)
DUMP_WRITE(addr,nr);
else
do_something_else();

(unsigned long)(&((type *)0)->member))
構造体のメンバーmemberのシフト量

2009年11月5日木曜日

Dependency Walker

Dependency Walker(ディペンデンシーウォーカー)は、32ビット/64ビット(exe、dll、ocx、sysなど)のWindowsモジュールをスキャンするユーティリティです。全ての依存モジュールの階層的ツリーダイアグラムを表示します。