нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение iN0k » 21.08.2012 08:19:53

компилируя, получаю такой вот лог
Код: Выделить всё
...
много строк
...
Compiling .srcSPARk5UI_COMMONSPARk5ui_wndMNGR.pas
Compiling .srcExtSUDOkuSUDOku.pas
Compiling .srcExtSUDOkuSUDOku_engineAn unhandled exception occurred at $0046033E :
EAccessViolation : Access violation
  $0046033E
  $00463EBB
  $004E4012
  $004FC5FE
  $004FCEF2
  $004DD453
  $004DDB90
  $0042F9CC
  $00512DBD
  $0051B06F
  $0051BCEA
  $0042F9CC
  $00512DBD
  .pas
Compiling .srcExtQueueuQueueOrder.pas
srcExtQueueuQueueOrder.pas(1,1) Fatal: Compilation aborted


Самое интересное начинается со слов "An unhandled ..." (чет не получилось выделить), но понять к какому файлу это относиться ...
Список скомпилированных файлов может менять.

Если я правельно понимаю, то такое поведение говорит о проблемме FPC а не Лазаруса.

Буду пробовать ставить FPC с отладкой ... в нем смотреть.
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение vada » 21.08.2012 09:51:55

У меня такая проблема была, и доставала меня долго. Достало! Проект большой и каждый раз делать "собрать все" это около 5-7 минут компиляции. Кофе попить можно. В конце концов, по совету друзей, перелопатил все USES чтоб не было перекрестных ссылок. Кое что пришлось серьезно переработать. Порядка 5000 строк кода ушло в треш. После этого компилятор падать перестал.
Так что мое мнение, надо USES переделать.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение iN0k » 21.08.2012 10:03:04

ипать ... этож ...
блин ... попробую ...

а перекрестных ... это на каком уровне
только в interface или еще в implementation?

Добавлено спустя 2 минуты 58 секунд:
а есть каккой-ниб инструмент ...
фалов реально дофига ((( ... хоть как-то автоматизировать
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение vada » 21.08.2012 10:26:39

- Именно перекрестные ссылки меду interfase и implementation.
- Каким механизмом! Все вручную (с)
- и у меня дофига файлов было.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение iN0k » 21.08.2012 15:42:37

перекрестные ссылки были ((( ...
удалось почистить ...
в Lazarus 1.1 r38276 FPC 2.6.1 i386-win32-win32/win64 оказывается есть ЗАМЕЧАТЕЛЬНЫЙ интсрумент Source/Unit Dependencies..
правда его пришлось допилить, после чего я смог получить список своих модулей образующих перекрестные ссылки

однако, желаемого результата это не принесло :-(


развалил в ихходниках все что можно ... НО СМОГ НАЙТИ КАСЯК :D :D :D
воспроизодится кодом формы
Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  tMyClass=class
   end;
  tMyFormType= class of tMyClass;

  TForm1 = class(TForm)
  public
    procedure myFNC(obj:tObject);      overload;
    procedure myFNC(obj:tClass);       overload;
    procedure myFNC(obj:tMyFormType);  overload;
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

procedure TForm1.myFNC(obj:tObject);
begin
  //
end;

procedure TForm1.myFNC(obj:tClass);
begin
  //
end;

procedure TForm1.myFNC(obj:tMyFormType);
begin
  //
end;

end.


данный пример не компилиться, и выдает вот такое невнятное сообщение
Код: Выделить всё
...
очень много строчек
...
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling project1.lpr
Compiling Unit1.pas
Unit1.pas(1,1) Fatal: Compilation aborted


самое интересное, что если myFNC вынести за пределы класса, то компилиться )))
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Vapaamies » 21.08.2012 18:20:41

А разве перегруженные процедуры с параметром типа TClass и TMyFormType -- не ambiguous method call? Хоть это лишь объявление, при вызове скорее всего будет ошибка компиляции (сообщение взято из Delphi, как оно там в FPC?).
Аватара пользователя
Vapaamies
постоялец
 
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Максим » 22.08.2012 01:34:15

iN0k
Оформите это в самодостаточную компилируемую программку и отправьте в багтрекер, если не трудно.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение iN0k » 22.08.2012 08:13:58

демка есть :) (во вложениях)
с другим проблемма:
1. баг это или фича (как мне кажется всетаки это баг)
2. чей это баг (виноват Lazarus или FPC)
3. как описать на словах (проблемма компиляции при использовании перегруженных методов? а по английски?)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Снег Север » 22.08.2012 10:12:02

У меня скомпилировалось без проблем на сборке от CodeTyphon 2.80
Lazarus 1.1.0 Source from SVN 28-7-2012 Rev 38083
FreePascal 2.7.1 Source from SVN 22-7-2012 Rev 21951
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3052
Зарегистрирован: 27.11.2007 16:14:47

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение vada » 22.08.2012 10:15:32

Никогда не любил перегруженные операторы. Считаю что это не паханое поле для багов. Но если эту фичу пихают куда непопадя, видимо, резон какой-то есть.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Сквозняк » 22.08.2012 14:40:25

iN0k писал(а):с другим проблемма:
1. баг это или фича (как мне кажется всетаки это баг)
2. чей это баг (виноват Lazarus или FPC)

1. В x86_64 линуксе пример компилируется нормально, там бага нет.
2. А в чём проблема проверить? Пишешь батник собирающий через fpc.exe из коммандной строки, в конце батника ставишь оператор pause и компилишь. Из fp.exe может нормально не собраться - в линуксе собираются нерабочие формы, проверять компиляцию нужно из коммандной строки. Для генерации отладочной информации добавляешь опции -Xm -g -gv
Сквозняк
энтузиаст
 
Сообщения: 1129
Зарегистрирован: 29.06.2006 22:08:32

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение zub » 22.08.2012 19:15:12

iN0k
а нахрена от вылета компилятора избавился? такие вещи первым делом надо багтрекер слать.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Максим » 23.08.2012 01:30:02

iN0k писал(а):демка есть :) (во вложениях)

Спасибо, но можно сократить ещё больше, полностью исключив Lazarus. Нижеприведённый код у меня валит FPC версии 2.6.1 (Windows XP SP3 32 bit):
Код: Выделить всё
program badclass;

{$mode objfpc}

type
  tMyClass=class
   end;
  tMyFormType= class of tMyClass;

  TForm1 = class
  public
    procedure myFNC(obj:tObject);      overload;
    procedure myFNC(obj:tClass);       overload;
    procedure myFNC(obj:tMyFormType);  overload;
  end;

procedure TForm1.myFNC(obj:tObject);
begin
end;

procedure TForm1.myFNC(obj:tClass);
begin
end;

procedure TForm1.myFNC(obj:tMyFormType);
begin
end;

begin
end.

iN0k писал(а):с другим проблемма:
1. баг это или фича (как мне кажется всетаки это баг)
2. чей это баг (виноват Lazarus или FPC)

Это баг FPC. Валиться он не должен.

iN0k писал(а):3. как описать на словах (проблемма компиляции при использовании перегруженных методов? а по английски?)

Я уже отписал. Адрес сообщения об ошибке: http://bugs.freepascal.org/view.php?id=22705
Последний раз редактировалось Максим 24.08.2012 05:54:44, всего редактировалось 1 раз.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение iN0k » 23.08.2012 07:58:09

Максим писал(а):Я уже отписал.

СПАСИБО дружище :D
iN0k
постоялец
 
Сообщения: 146
Зарегистрирован: 18.07.2012 14:09:50

Re: нужна помощь! *.pas(1,1) Fatal: Compilation aborted???

Сообщение Vadim » 23.08.2012 09:07:03

Максим
А Вы попробуйте исключить сочетание перегрузок Class с Object - компилятор сразу валиться перестанет. Интересно, почему? ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Пред.След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru