ГБД: Lessss; Как отследить

Я пытаюсь отследить эту программу с открытым исходным кодом под названием lessfs: и встроенную файловую систему дедупликации данных для Linux, но у меня возникают проблемы с пошаговым пошаговым использованием GDB

Уроки можно найти здесь: http://www.lessfs.com/wordpress/

Есть ли другие инструменты, рекомендованные для отслеживания больших программ с открытым исходным кодом как таковых? Исходный код содержит около 3000 строк с несколькими файлами, и я понимаю, над какой частью файлов я буду работать, но было бы здорово, если бы была программа, которая показывала мне шаг за шагом, какие методы вызывались и тому подобное, так же, как 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) 

Что я действительно хочу сделать, так это иметь несколько операторов print в файле lib_commons.c и выводить оттуда некоторые данные, но как мне это сделать, когда в этой программе с открытым исходным кодом объединено так много файлов?

Спасибо за ваше время,

0 ответов

Другие вопросы по тегам