gdb всегда программа, из которой выходят с кодом 01

Код похож на это?

case "$5" in
    -|+) eval '(('jd2=${jd1}${5}${6}'))' jd2date $jd2 
esac

Если так, Вы могли бы назвать команду как так:

script arg1 arg2 arg3 arg4 + 6

или

script arg1 arg2 arg3 arg4 - 10

Вы можете заставлять код быть похожим на это:

 eval '(('jd2=${jd1}+${5}'))' jd2date $jd2 

Как команда назвали бы так:

script arg1 arg2 arg3 arg4 10

${5}, ${6}, ${jd1}, и $jd2 заменены с содержанием их соответствующих переменных. Переменные, которые являются числами (например. $5 и $6) позиционные параметры.

Так как Вам больше не нужен оператор, который будет помещен переменной, вызовом к eval не необходимо. Ваш код может быть похожим на это:

 (( jd2=${jd1}+${5} ))
 jd2date $jd2

Или, с немного более чистым синтаксисом:

 (( jd2 = jd1 + $5 ))
 jd2date $jd2

2
27.02.2015, 00:25
2 ответа

Пользователь / Run / Run.SH предположительно (учитывая name) Сценарий оболочки, который устанавливает вещи, которые необходимо запустить программу. Вероятные вещи установлены переменные среды и передают аргументы командной строки. Чтобы установить переменные среды и аргументы командной строки в GDB, используйте

set args = arg1 arg2
set env VAR1 = value1
set env VAR2 = value2

Прочитайте сценарий оболочки, чтобы увидеть, что он на самом деле делает.

1
27.01.2020, 21:54

Думаю, вы можете использовать этот трюк.

устанавливает точку останова при выходе.

gdb ..

b exit

run ..

bt

, чтобы вы могли узнать, где главный вызов функции выхода

5
27.01.2020, 21:54

Теги

Похожие вопросы