* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 16, 2024, 11:57:32 am

Inserisci il nome utente, la password e la durata della sessione.

15 Visitatori, 0 Utenti

Autore Topic: Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.  (Letto 2837 volte)

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile

LinuxMint 19 Mate, Lazarus 2.0.0x64Buongiorno, difficile da capire:
in un Datamodulo nell'evento -onCreate- ho inserito il richiamo ad una procedura di una unit : apritabelle.
La procedura è questa:
Codice: [Seleziona]

  I:=0;
   with Dataconta do
     begin
       While I < (ComponentCount-1) do
         begin
           try
             if Components[I] is TZTable then
               begin
                 try
                 begin
                 TTemp:= Components[I] as TZTable;
                      Filename:= TTemp.Tablename;
                      //informa('il file è :' + filename);
                      Sleep(1);
                      Application.ProcessMessages;
                      TTemp.Active:=False;
                      TTemp.Active:=True;
                    end;
                  except
                     on E: Exception do exit; // EsercizioBase;
                     //exit;
                  end;
               end;
           except
             on E: Exception do
             begin
             Informa('Si è verificato un errore in una o più tabelle'#13#10+
             'in Apri Tabelle per ' + FileName+
             '   è necessario riconvertire gli archivi'#13#10+
             '   o scegliere un altro esercizio'#13#10+
             'Sarà attivato l''''Esercizio di Esempio');
          DataConta.Aziende.Active:=True;
             exit;
            end;
           end;
           I:=I+1;
         end;
       end;
Se non inserisco :
Codice: [Seleziona]

Sleep(1);
Application.ProcessMessages;
mi ritorna l'errore:
Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
NON È UN PO STRANO?
« Ultima modifica: Aprile 28, 2020, 03:35:11 am da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Mi sembra molto strano. Lo stesso codice su qindows o su ubuntu ad esempio come si comportano?
Ieri è passato, domani è futuro, oggi è un dono...

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Ciao,
premetto che in fondo al titolo della discussione hai messo "[RISOLTO]", quindi non capisco se nel frattempo hai trovato la soluzione da solo.

Nel caso in cui tu avessi ancora il problema, per caso il codice che hai postato, è lanciato all'interno di un thread?

Ciao, Mario

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
bonmario
facendo delle prove sull'errore ho capito che bisognava ritardare il ciclo quindi ho provvisoriamente risolto mettendo:
Sleep(1);
Application.ProcessMessages;
ma non mi sembra normale. E' una semplice procedura senza thread.


xinyiman
proverò su windows prossimamente.


Forse ZeosLib 7.1.4 non è completamente compatibile lazarus 2.0.6
« Ultima modifica: Aprile 27, 2020, 01:23:42 pm da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Ciao.


Notavo che facevi un Application.ProcessMessages.


Non vedendo altro che il ciclo while (curiosa scelta al posto di un for) mi domando se c'è qualche cosa che possa "scattare" e trovare un nil da qualche parte.


Quindi il problema non è strettamente legato al while ma a qualche "paint selvatica" che si schianta.


Se sei in "onCreate" magari evita di chiudere l poi riaprire il dataset. Magari controlla solo se il dataset è chiuso per aprirlo.


Suggerimenti a spaglio così a sentimento.....




Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Stilgar, è veramente una "paint selvatica" che lo fa schiantare
.il problema è in una tabella che attivandola da l'errore:
Il progetto ..... ha sollevato una eccezione di classe 'External: SIGSEGV'.
 All'indirizzo 7FFFF6940F2F
Ne ho provate molte ma non sono ancora riuscito a risolvere. La tabella sembra uguale a tutte le altre.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #6 il: Aprile 28, 2020, 02:05:23 pm »
Ti potrei suggerire di controllare anche l'apertura della connessione al db.
Così a design time devi ricordarti di "spegere" la connessione prima dell'esecuzione. Oppure metti un controllo se la connessione è aperta.Poi passi a fare l'apertura delle tabelle come fai adesso. Magari quella in questione, per qualche motivo perde la connessione in avvio. (La sparo a casaccio di nuovo)

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #7 il: Aprile 29, 2020, 03:32:19 pm »

ho risolto facendo una retrocessione di Lazarus e ZeosDbo,
Avevo intuito che il problema  era dato da Zeos 7.2.6 con SQLITE3 ma su Lazarus 2.0.6 non si riesce ad installare Zeos 7.1.2 che funziona, tramite FPCUPDeluxe ho installato una seconda istanza di Lazarus la ver. 1.6.2 e ZeosDBO 7.1.2 e tutto è tornato a funzionare, il programma si compila e funziona correttamente senza errori. Mantenendo le versioni aggiornate non sarei riuscito a compilare o a farlo funzionare perchè gli errori segnalati erano molti di 'access violation' oltre a quello in oggetto sulle istruzioni che modificano le tabelle come .next-.post-.edit-.insert.
Mi dispiace perchè gradivo molto la versione 2.0.6 di Lazarus ma se un sistema è funzionante è meglio non cambiarlo.
Non credo che si possa mettere 'RISOLTO' a questo post.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #8 il: Aprile 29, 2020, 03:37:53 pm »
Stano.Uso la 2.06 senza problemi con Zeos 7.2.6

Che versione del compilatore stai usando?
Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #9 il: Aprile 29, 2020, 06:08:53 pm »
fpc 3.0.4
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #10 il: Aprile 29, 2020, 06:10:31 pm »
Molto ma molto strano.Pensavo fosse una 3.3.1 che ti rompeva ...
La 3.0.4 è la stessa che usavo.
mmmm

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #11 il: Aprile 29, 2020, 06:27:42 pm »
si, molto strano ed impossibile da verificare. Ho due programmi gestionali abbastanza complessi, con molte tabelle, con database sqlite3 ed entrambi danno errore di access violation alla manipolazione delle tabelle. Per entrambi ho dovuto tornare alle versioni precedenti.
Penso sia Zeos che ha dei bug.  gli errori:
--Il progetto ..... ha sollevato una eccezione di classe 'External: SIGSEGV'.
 All'indirizzo FF
-- e su un tabella.Post Connot find bounds of current function.

« Ultima modifica: Aprile 29, 2020, 06:40:17 pm da antoniog »
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #12 il: Aprile 29, 2020, 08:20:28 pm »
sono riuscito ad installare Zeos 7.1.2 stable sotto Lazarus 2.0.6 e sembra funzionare tutto, quindi il caos era dovuto alla ver. di Zeos 7.2.6.
Quindi risolto, grazie per l'aiuto.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

antoniog

  • Scrittore
  • Sr. Member
  • *****
  • Post: 257
  • Karma: +0/-0
    • Informatica Utile
Re:Il progetto..ha sollevato una eccezione di classe 'External: SIGSEGV'.
« Risposta #13 il: Maggio 30, 2020, 12:08:01 am »
"sono riuscito ad installare Zeos 7.1.2 stable sotto Lazarus 2.0.6 e sembra funzionare tutto, quindi il caos era dovuto alla ver. di Zeos 7.2.6."


SBAGLIATO! con questa configurazione funziona solo fino a quando non si compila l'intero progetto e poi ritorna l'errore che a runtime è di "ACCESS VIOLATION".


Su ogni tabella di un vecchio database SQLite3 all'esecuzione di un NEXT  o POST viene generata un'eccezione di 'External: SIGSEGV' in debug e a runtime "ACCESS VIOLATION".

Se l'errore non verrà corretto diventerà difficile fare manutenzione nel tempo ai propri programmi con Lazarus.
avrai solo la libertà che riuscirai a conquistarti e anche questa sarà incerta.

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18769
  • Topic in totale: 2232
  • Online Today: 80
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 15
Total: 15

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.