Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Cosa significa lanciare EXE con il debug attivato

Scusate l'ignoranza ma ho letto da qualche parte che per risolvere un
problema di errore "sconosciuto" qualcuno consigliava al malcapitato
appunto di lanciare una versione dell'EXE con il debug attivato.
Visto che ho un problema "sconosciuto" volevo provare anch'io ma non
so cosa significhi nè come si faccia a creare questo tipo di
eseguibile. 
Qualcuno sa come aiutarmi o dove posso cercare?!?!?
Grazie
Chris

 eseguibile.
Ti serve innanzitutto un debugger. Uno abbastanza buono, gratuito, è il 
Turbo Debugger di Borland. Dopodichè hai tre modi per agganciarlo al 
programma da debuggare:
 - lanciare il programma e agganciarlo quando ne hai bisogno da dentro 
il debugger (attenzione, quando il debugger si sgancia dal processo 
debuggato, quest'ultimo viene terminato. E' una limitazione di Windows)
 - lanciare il programma da dentro il debugger
 - configurare il sistema in modo che il session manager agganci 
automaticamente un certo debugger a tutti gli eseguibili con un certo 
nome. Fattibile solo in Windows NT. Cerca "Image File Execution 
Options" nella Knowledge Base
Il debugger riceverà dal processo a cui è agganciato una serie di 
messaggi e notifiche (una notifica per ogni processo creato, per ogni 
thread creato, per ogni dll caricata, eccetera), avrà la possibilità di 
modificare la memoria del processo debuggato, di leggere e scrivere lo 
stack e impostare lo stato dei registri di ogni suo thread, di gestire 
le eccezioni al posto suo (queste due ultime caratteristiche permettono, 
ad esempio, di impedire che un programma venga terminato a causa di 
errori "banali" come una divisione per zero o l'uso di un'istruzione 
privilegiata, modificando lo stato del thread in modo che la sua 
esecuzione prosegua indisturbata). Inoltre sarà possibile usare un 
corrispettivo del metodo Debug.Print di VB, OutputDebugString, anche 
nell'eseguibile finale. Ovviamente serve una buona conoscenza dello 
strumento, e del codice macchina
Il debugger può aiutare solo in casi particolarissimi, a trovare la 
causa ad esempio di qualche schermo blu o GPF, per vedere in che modulo 
e funzione si verifica l'errore (cosa spessissimo utile e che richiede 
relativamente poca esperienza). I debugger tradizionali sono invece 
pressochè inutili per esigenze particolari, come il debugging di 
programmi interpretati o di procedure remote, per questo esistono 
strumenti appositi
In definitiva, il debugger può esserti d'aiuto, ma non puoi affidarti 
unicamente ad esso, cerca prima di risalire alla causa del problema 
secondo i sistemi tradizionali

secondo i sistemi tradizionali
Certo sono d'accordo! eccetto per i casi di cui sopra.
Se riesci a darmi altre informazioni ti sarei molto grata.
Intanto grazie, mi hai chiarito un pochino le idee. Magari mi scarico
il turbo debugger per capirne di più
Bye Bye

E' questo di cui avrei bisogno
Guarda, per questo basta attivare il debugger di Windows, un programma 
chiamato con un certo qual senso dell'umorismo Dr. Watson. E' non 
interattivo, cioè fa tutto da sè, a differenza di Turbo Debugger e 
simili che richiedono la presenza di un operatore, 
In Windows 98 il suo eseguibile si chiama drwatson.exe, va fatto partire 
all'avvio del sistema e lasciato in esecuzione per tutto il tempo, 
appena si verifica un errore lui sostituisce la normale dialog d'errore 
e ti crea un rapporto dettagliatissimo, che può essere salvato come file 
di Dr. Watson o come testo (consigliato il secondo)
In Windows NT si chiama drwtsn32.exe, si installa automaticamente con la 
riga di comando "drwtsn32.exe -i"; non appena si verificherà un errore 
il sistema lo avvierà, lo aggancerà al programma che ha commesso 
l'errore e lascerà che Dr. Watson faccia la sua "diagnosi", che 
consisterà in un file contenente informazioni sullo stato del programma 
"malato" e il disassemblato delle ultime istruzioni eseguite, con una 
freccia indicante l'istruzione che ha generato l'errore. Se hai Windows 
2000 è spiegato tutto molto bene nell'help (che puoi scaricare 
gratuitamente anche se non hai Windows 2000)