gdb и чтоние файлов
Модератор: Модераторы
-
Guest
Уважаемые господа!
У меня стоит RedHat9 и под ним lazarus 0.9.14.
Для отладки подключен gdb: GNU gdb Red Hat Linux (5.3post-0.20021129.18rh).
На первый взгляд все просто замечательно: пошагово программа выполняется, можно просматривать значения переменных - просто сказка!
НО! Если программе необходимо открыть файл для чтения...
function .....;
var fnm:textfile;
begin
assign(fnm,'name');
reset(fnm);
.........
...то выскакивает сл. сообщение: Project raised exception class 'RunError(2)'.
а затем 'Unknown Error' процесс отладки останавливается.
Может у кого-нить есть предположения, от чего и как это можно победить?
У меня стоит RedHat9 и под ним lazarus 0.9.14.
Для отладки подключен gdb: GNU gdb Red Hat Linux (5.3post-0.20021129.18rh).
На первый взгляд все просто замечательно: пошагово программа выполняется, можно просматривать значения переменных - просто сказка!
НО! Если программе необходимо открыть файл для чтения...
function .....;
var fnm:textfile;
begin
assign(fnm,'name');
reset(fnm);
.........
...то выскакивает сл. сообщение: Project raised exception class 'RunError(2)'.
а затем 'Unknown Error' процесс отладки останавливается.
Может у кого-нить есть предположения, от чего и как это можно победить?
-
Guest
-
Guest
-
SovNarKom
- постоялец
- Сообщения: 389
- Зарегистрирован: 28.05.2005 10:37:39
- Откуда: Воронеж [vrn] [36]
- Контактная информация:
Ну у меня в общем под win32 такого нет... ещё можно попробовать слздать другой файл ReWrite-ом, и посмотреть, что будет... но ещё попробуй этот код
Код: Выделить всё
function .....;
var fnm:textfile;
begin
assign(fnm,'name');
{$I-}
reset(fnm);
.........
close(fnm)
{$I+}
-
Guest
SovNarKom писал(а):... попробуй этот кодКод: Выделить всё
function .....;
var fnm:textfile;
begin
assign(fnm,'name');
{$I-}
reset(fnm);
.........
close(fnm)
{$I+}
Огромное спасибо!!! теперь не вылетает, по крайней мере там, где раньше. А что эти "{$I-}{$I+}" делают? Еще раз спасибо!!!
-
SovNarKom
- постоялец
- Сообщения: 389
- Зарегистрирован: 28.05.2005 10:37:39
- Откуда: Воронеж [vrn] [36]
- Контактная информация:
Они выключают и включают автоматический контроль ошибок ввода-вывода, после них хорошо бы вызвать IOResult и посмотреть что она вернёт.
0 - всё нормально, иначе это код ошибки.
Вообще говоря странно у тебя оно себя ведёт...м Может GDB уродует рабочую директорию... попробуй по абсолютному пути вызывать.
0 - всё нормально, иначе это код ошибки.
Вообще говоря странно у тебя оно себя ведёт...м Может GDB уродует рабочую директорию... попробуй по абсолютному пути вызывать.
-
Guest
Что то я ваще запутался 
У меня есть "главная" из которой вызываются все остатьные. Раньше не хотели работать те "остальные". Т.е. отладчик заходил в "главную" из нее вереходил в подфункции и там уже возникали проблемы с файлами. Теперь отладчик ругается сразу при входе в "главную" (сразу после первого begin), хотя непосредственно в ней работы с файлами нету. До вызываемых из нее функций, которые с файлами и работают, отладчик не доходит
.
Посмотрел IOResult - вездк нули, т.е. вроде гуд.
У меня есть "главная" из которой вызываются все остатьные. Раньше не хотели работать те "остальные". Т.е. отладчик заходил в "главную" из нее вереходил в подфункции и там уже возникали проблемы с файлами. Теперь отладчик ругается сразу при входе в "главную" (сразу после первого begin), хотя непосредственно в ней работы с файлами нету. До вызываемых из нее функций, которые с файлами и работают, отладчик не доходит
Посмотрел IOResult - вездк нули, т.е. вроде гуд.
