1

このlessfsと呼ばれるオープンソースプログラムと、Linux用のインラインデータ重複排除ファイルシステムを追跡しようとしていますが、GDBを使用して段階的に進めるのに問題があります

Lessfs はここにあります: http://www.lessfs.com/wordpress/

大規模なオープン ソース プログラムなどを追跡するために推奨される他のツールはありますか? ソースコードは3,000行程度で複数のファイルがあり、ファイルのどの部分に手を加えるかはわかるのですが、どのメソッドが呼び出されているかなどを順を追って示してくれるプログラムがあればいいのですが、 GDBと同じように

現在、これを実際に実装する方法が複雑になっています。

私は実際には単純な C ファイルを GDB に実行するのではなく、大きな C ファイルのグループを実行しているので、複数のファイルがあることを知って GDB を適切に実行する方法について少し迷っています。

私が定期的に使用しているコマンドは次のとおりです。これらのコマンドは、このチュートリアルで見つけることができます。

http://www.linuxjournal.com/content/data-deduplication-linux

通常のコマンド (GDB なし)

sudo cp etc/lessfs.cfg /etc/

sudo mkdir -p /data/{dta,mta}

///** 上記は前提条件です **///

///** lessfs を起動するには **///

./lessfs

sudo mklessfs -c /etc/lessfs.cfg

sudo lessfs /etc/lessfs.cfg /mnt

///** テスト **///

df -t fuse.lessfs

ls -a /mnt/

sudo r dd if=/dev/zero of=/mnt/test.dat bs=1M count=100

df -t fuse.lessfs

///** GDB の使用 **///

Now running with GDB (I have found an idea here: https://groups.google.com/forum/#!msg/lessfs/dkXDckXYnqw/ns5NpDegL_YJ)

gdb ./lessfs

set args /etc/lessfs.cfg /fuse -d -o\ hard_remove,negative_timeout=0,entry_timeout=0,attr_timeout=0,use_ino,readdir_ino,default_permissions,allow_other,big_writes,max_read=131072,max_write=131072

(実行して、ちゃんとやってますか??)

(gdb) r mklessfs /etc/lessfs.cfg
Starting program: /home/hb2/lessfs/lessfs1/lessfs mklessfs /etc/lessfs.cfg
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Inferior 1 (process 3621) exited with code 0377]


(gdb) r lessfs /etc/lessfs.cfg /mnt
Starting program: /home/hb2/lessfs/lessfs1/lessfs lessfs /etc/lessfs.cfg /mnt
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Inferior 1 (process 3633) exited with code 0377]


(gdb) r df -t fuse.lessfs
Starting program: /home/hb2/lessfs/lessfs1/lessfs df -t fuse.lessfs
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGUSR1, User defined signal 1.
0x00007ffff7386707 in kill () from /lib/x86_64-linux-gnu/libc.so.6


(gdb) r dd if=/dev/zero of=/mnt/test.dat bs=1M count=100
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/hb2/lessfs/lessfs1/lessfs dd if=/dev/zero of=/mnt/test.dat bs=1M count=100
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGUSR1, User defined signal 1.
0x00007ffff7386707 in kill () from /lib/x86_64-linux-gnu/libc.so.6


(gdb) next
Single stepping until exit from function kill,
which has no line number information.

Program terminated with signal SIGUSR1, User defined signal 1.
The program no longer exists.
(gdb) 

私が本当にやりたいことは、ファイル lib_commons.c にいくつかの印刷ステートメントを入れて、そこからいくつかのデータを出力することですが、このオープン ソース プログラムに非常に多くのファイルが結合されている場合、どうすればよいでしょうか?

お時間をいただきありがとうございます。

4

0 に答える 0