2016-04-27 4 views
0

Я отлаживаю цикл while с использованием условных точек останова в . Существует несколько больших массивов, которые создаются в цикле while. Я бы хотел напечатать их в файле во время отладки, чтобы потом сравнить с помощью diff.печатать содержимое массива в файл с помощью gdb

Я могу визуализировать содержимое на консоль с помощью следующей команды:

(gdb) p *&ff[0]@10 

где ff это мой массив. Скажите, как я могу перенаправить их в текстовый файл.

+0

Почему вы используете '* &' во время печати? –

+0

* для значения, которое должно быть напечатано – Shreya

+0

Вы можете использовать '(gdb) p ff [0] @ 10' –

ответ

4

Вы можете использовать:

(gdb) set logging file large_array.txt 
(gdb) set logging on 

По умолчанию имя каротаж файла gdb.txt

Вы можете найти более подробную информацию по адресу: https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html

Существует также один WA gdb --args a.out arg1 ... |& tee gdb_out.txt

+0

Это работает, но формат является проблемой. Я хотел бы, если в файл есть что-то вроде перенаправления содержимого массива. – Shreya

+0

@ShreyaKhare Если вы можете изменить исходный код, вы можете распечатать массивы в требуемом формате. –

+0

@ShreyaKhare Какой формат вам нужен? –

2

Вы установить регистрацию с использованием

(gdb) set logging on 

После этого все выходные команды будут выводиться в файле под названием «gdb.txt». Содержимое массива можно найти в файле.

Смежные вопросы