spamjokester писал(а):Я программирую в VB60. И у меня сложилась своя система отлова ошибок. В частности не использую встроенные отладочные функции (точки останова и. т.д). Чаще всего, предполагаю ошибку, вставляю оператор STOP или IF ...STOP,и подвожу курсор к нужной переменной для определения ее значения и.т.д.
Как можно в PWBASIC это делать. Например, останов,вывод информации и завершение программы.
Т.е пример-код.
Спасибо.
spamjokester писал(а):Неужели нельзя, предусмотреть авторам,c чем может столкнуться пользователь при адаптации программы с VB60
spamjokester писал(а):
- Код: Выделить всё
global x_ptr as integer ptr
dim x (129 to 145) as global: x_ptr=VARPTR(x(0))
x(129)=1
msgbox str$(@x_ptr[129])
spamjokester писал(а):global x_ptr as integer ptr
dim x (129 to 145) as global: x_ptr=VARPTR(x(0))
x(129)=1
msgbox str$(@x_ptr[129])
spamjokester писал(а):Какое именно
dim x (129 to 145) as global
spamjokester писал(а):Какое именно )). Это просто тест в режиме #DEBURG ERROR ON
#COMPILE EXE
#DIM ALL
'#DEBUG ERROR ON
GLOBAL x_ptr AS INTEGER PTR
FUNCTION PBMAIN () AS LONG
DIM x(129 TO 145) AS GLOBAL INTEGER:x_ptr=VARPTR(x(0))
MSGBOX STR$(@x_ptr[129])
END FUNCTION
=0
Без режима=1
x_ptr=VARPTR(x(0))
x_ptr=VARPTR(x(-10000))
x_ptr=VARPTR(x(32768))
spamjokester писал(а):При обращении указателей к не верному адресу,программа завершится в скором времени. А она показывает правильное значение.
Может,это исключение,и она знает куда обращаться.))
spamjokester писал(а):А значит не исключена ошибка OVERFLOW, значением для вычислений может стать какой то 'мусор'. И его трудно искать. Неужели PWB не дает возможность 'проверки такого режима'. Или дает ?
Note: PowerBASIC does not trap numeric overflow or underflow errors in equation and expression evaluation.
jangle писал(а): применяется она только в простейших языках для начинающих типа VB.
Хакер писал(а):jangle писал(а): применяется она только в простейших языках для начинающих типа VB.
Jangle, прекрати писать хрень.
Хакер писал(а):Во всём. В том, что указанное применяется только в простейших языках (это неправда). В том, что VB является простейшим языком. В том, что VB является языком для начинающих.
Хакер писал(а):Их там нет, потому что они там технически быть не могут, потому что массивы сделаны как легковесная тонкая обёртка над арифметикой с указателями.
jangle писал(а):Они там не нужны. Профессиональному программисту проверка границы массива только мешает.
jangle писал(а):Есть единственный стандарт языков в программировании это С/С++
iGrok писал(а):Толсто. Очень.
iGrok писал(а):Троллишь толсто.
jangle писал(а):применяется она только в простейших языках для начинающих типа VB.
jangle писал(а):Профессиональному программисту проверка границы массива только мешает.
jangle писал(а):Но в случае топикстартера такая проверка нужна, тогда бы он не постил откровенно неправильный код.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43