Recent

Author Topic: Internal error 200609171 macOS и ещё кучу хлама буду добавлять, что найду.  (Read 5134 times)

Seenkao

  • Hero Member
  • *****
  • Posts: 613
    • New ZenGL.
Это ошибка при компиляции в MacOS при выборе неправильного дебаггера.

Где вообще смотреть какие ошибки и к чему они относятся? Надоедает в угадайку играть. Вроде развитая система, а ошибки, которые обычному пользователю не решить, ни где не прописаны.

Далее:
https://wiki.freepascal.org/FPC_PasCocoa
Code: Pascal  [Select][+][-]
  1. program simplewindow;
  2.  
  3. {$mode objfpc}{$H+}
  4. {$modeswitch objectivec2}
  5.  
  6. uses
  7.   CocoaAll;
  8.  
  9. var
  10.   appName: NSString;
  11.   window: NSWindow;
  12.   pool: NSAutoreleasePool;
  13. begin
  14.   pool := NSAutoreleasePool.new;
  15.   NSApp := NSApplication.sharedApplication;
  16.   NSApp.setActivationPolicy(NSApplicationActivationPolicyRegular);
  17.   appName := NSProcessInfo.processInfo.processName;
  18.   window := NSWindow.alloc.initWithContentRect_styleMask_backing_defer(NSMakeRect(0, 0, 200, 200),
  19.     NSTitledWindowMask, NSBackingStoreBuffered, False).autorelease;
  20.   window.center;
  21.   window.setTitle(appName);
  22.   window.makeKeyAndOrderFront(nil);
  23.   NSApp.activateIgnoringOtherApps(true);
  24.   NSApp.run;
  25. end.

работать не будет. Пока вы не пропишите NSApp, на всякий случай прописать
Code: Pascal  [Select][+][-]
  1. var
  2.   myNSApp: NSApplication;
и в коде заменить все NSApp на myNSApp

На самом деле можно не прописывать NSApp - если он будет в вызываемом модуле.

//-------------------------------------------------------------------------------------
Себе на память. Компилятор FPC во время отладки спокойно выдаст ошибку, даже если программа без отладки запускалась. (править это не собираются)
Поэтому, при ошибке Error 201 зачастую надо искать какие-то мелкие ошибки/недоработки в своём коде, которые могут вызвать исключения, которые вы поставили на отладку.
При том!!! Что даже если это просто число! Обычная опечатка и вам отладчик об этом может не сообщить.

Ошибка может быть при работе с OR, AND, XOR и подобными функциями. Следом за ними вставляется отладочный код, который проверяет переполнение. Поэтому ошибка при отладке как может быть, так её может и не быть.
« Last Edit: November 28, 2020, 06:09:45 pm by Seenkao »
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2032
  • Former Delphi 1-7, 10.2 user
Далее:
https://wiki.freepascal.org/FPC_PasCocoa
Code: Pascal  [Select][+][-]
  1. program simplewindow;
  2. [...]
  3. end.

работать не будет. Пока вы не пропишите NSApp, на всякий случай прописать
Code: Pascal  [Select][+][-]
  1. var
  2.   myNSApp: NSApplication;
и в коде заменить все NSApp на myNSApp

Эта программа у меня работает без изменений (FPC 3.0.4 и FPC 3.3.1).

Seenkao

  • Hero Member
  • *****
  • Posts: 613
    • New ZenGL.
trev, это должно работать без объявления LCL-зависимости. У вас это так?
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2032
  • Former Delphi 1-7, 10.2 user
Да, это правильно.

Seenkao

  • Hero Member
  • *****
  • Posts: 613
    • New ZenGL.
Тогда я бы хотел узнать, откуда вы получили зависимость NSApp? Если проект не LCL, то зависимость проявляется как ссылка на объект в NSApplication, не как сама зависимость от NSApplication.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2032
  • Former Delphi 1-7, 10.2 user
Вы компилируете исходный код с помощью fpc, а не с помощью Lazarus.
« Last Edit: September 20, 2020, 03:14:19 pm by trev »

Seenkao

  • Hero Member
  • *****
  • Posts: 613
    • New ZenGL.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

Seenkao

  • Hero Member
  • *****
  • Posts: 613
    • New ZenGL.
Так, для себя на памятку, но может кому тоже пригодится.

Если вы скомпилировали приложение и оно работает, но когда решаете отладить какие-то части кода и после этого начинает падать приложение:
 - отключаем все отладочные флаги и проверяем работу приложения.
 - если приложение не LCL, убираем галочку "использовать внешний отладочный файл"
 - меняем тип отладочной информации
 - пробуем поменять отладчик.

Так же!!! Будьте внимательны, отладочные флаги включают в программу код, который может быть "вреден" для программы. Отладочные флаги старайтесь вообще не включать! Особенно если вы не собираетесь ими пользоваться.
Rus: Стремлюсь к созданию минимальных и достаточно быстрых приложений.

Eng: I strive to create applications that are minimal and reasonably fast.
Working on ZenGL

 

TinyPortal © 2005-2018