2017-01-24 16 views
1

Я в процессе отладки исправленной версии grep 2.26 для компании, в которой я работаю. Мой вопрос в том, почему я получаю разные выходные данные при запуске grep через LLDB или GDB с тем же аргументом «grep -c root/etc/passwd» по сравнению с только запущенным grep и аргументом в терминале?Отладка grep 2.26 с LLDB вызывает разницу по сравнению с запуском grep 2.26 в терминале

Результаты терминала:

Результаты LLDB/Xcode

корень: : 0: 0: Системный администратор:/вар/корень:/бен/ш демон: : 1: 1: Системные службы:/var/root:/usr/bin/false _cvmsroot: *: 212: 212: CVMS Root:/var/empty:/usr/bin/false Программа завершена кодом выхода: 0

Я думал, что я не настроил его правильно, но получаю тот же результат при прохождении через GDB/Netbeans.Any Ideas с большой благодарностью. Cheers

+0

Похоже, что аргумент '-c' не передается' grep'. Какой метод вы используете, чтобы сообщить lldb и gdb аргументы, которые они должны дать 'grep'? –

+0

Через терминал не отладки: $ ГРЭП -c корень/и т.д./пароль LLDB на клемме (lldb) -c г корень/и т.д./пароль Процесс 3175 запущен: './src/grep' (x86_64) аргумент: -c root: *: 0: 0: Системный администратор:/var/root:/bin/sh daemon: *: 1: 1: Системные службы:/var/root:/usr/bin/false _cvmsroot : *: 212: 212: CVMS Root:/var/empty:/usr/bin/false LLDB с интерфейсом Xcode: по схеме редактирования/вкладка Run/Arguments: -c root/etc/passwd Если я grep - c root/etc/passwd дает ошибку, что root не является файлом или каталогом. Оператор печати добавлен для переменной параметра, чтобы убедиться, что аргумент был распознан. – Oswin

ответ

0

Решение. Проблема возникла из-за того, что команда, вызываемая в терминале, указывала на экземпляр/usr/bin/grep вместо каталога, который, как я думал, я вызывал. , чтобы вызвать grep из моего каталога Мне нужно было использовать ./grep ... теперь он соответствует среде отладки. Cheers