Autore Topic: Debug di un programma  (Letto 815 volte)

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Debug di un programma
« il: 10 Luglio 2008, 15:15:41 »
Ehilà :-)

Ho un nuovo problemino.
Come ho detto altrove, finalmente sono riuscito a far funzionare la versione per Linux dell'ODBC per i sistemi iSeries.
Quando utilizzo l'utility "isql" riesco a connettermi e a interrogare velocemente i dati del sistema centrale (ho provato su diversi sistemi con diverse release e tutte sono Ok).
Ho preparato un programmino per fare delle prove, e dentro ci ho messo una cosa come questa
Codice: [Seleziona]

  db = NEW Connection
 
  'Collegamento all AS/400
  WITH db
    .Type = "odbc"
    .Host = iSeries
    .Login = User
    .Password = Pwd
  END WITH
 
  db.Open

e fin qui tutto bene.

Il problema è che in un altro punto del programma faccio questo
Codice: [Seleziona]

  sql = "select CDCLI, RASCL from ACGXDATV2.ANCL200F order by Rascl"
  dati = db.Exec(sql)

e quando va in esecuzione la seconda riga, mi va in errore generico (#11).
Ovviamente non pretendo che qualcuno mi dica "cosa" non funziona, ma vorrei sapere se esiste il modo per vedere cosa è successo dietro le quinte :-)

Grazie
Saluti a tutti

Mario

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Debug di un programma
« Risposta #1 il: 10 Luglio 2008, 16:20:56 »
Uhm, dopo qualche analisi ulteriore ho trovato una mezza risposta:
leggendo i LOG ad un certo punto dice che si verifica un errore di "general protection" nel modulo GBX2.
Mr Google, mi ha confermato che GBX2 è il modulo di esecuzione di Gambas, quindi c'è qualcosa che non va.
A questo punto come faccio a sapere "esattamente" cosa è successo? :-)
Saluti a tutti

Mario

Offline Mario

  • Grande Gambero
  • ***
  • Post: 138
    • Mostra profilo
    • http://overhill1963.blogspot.com/
Re: Debug di un programma
« Risposta #2 il: 10 Luglio 2008, 16:24:24 »
Altro elemento: ho provato a usare il "gestore di database" e nel collegamento esce improvvisamente senza dare altri errori ... :-O
Saluti a tutti

Mario

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Debug di un programma
« Risposta #3 il: 14 Luglio 2008, 23:04:39 »
L'errore con segnale #11 è un po' come il "segmentation fault" di Linux: indica un errore di tipo generico, che può essere causato da una miriade di cose, compresi bachi di Gambas (gbx2, appunto) o chiamate ai driver del DB non tradotte correttamente.

Prova iniziando a semplificare la stringa SQL per vedere se qualcosa nel driver traduce la tua richiesta in maniera errata (ad esempio, prova togliendo l'ordinamento, prova selezionando tutti i campi, poi solo uno poi due ecc...).
Visita il mio sito personale: http://www.leonardomiliani.com