From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by margaux.inria.fr, Tue, 12 Oct 93 10:04:55 +0100 Received: from concorde.inria.fr by margaux.inria.fr, Mon, 11 Oct 93 20:35:52 +0100 Received: from Tamuz.Stanford.EDU by concorde.inria.fr; Mon, 11 Oct 1993 20:38:10 +0100 Received: by Tamuz.Stanford.EDU (5.61/25-theory-eef) id AA10144; Mon, 11 Oct 93 12:37:47 -0700 From: Xavier Leroy Message-Id: <9310111937.AA10144@Tamuz.Stanford.EDU> Subject: Re: option -g ?? To: Emmanuel.Thouvenin@loria.fr (Emmanuel Thouvenin) Date: Mon, 11 Oct 1993 12:37:46 -0700 (PDT) Cc: Pierre.Weis@inria.fr In-Reply-To: <9310111027.AA13421@hutch.loria.fr> from "Emmanuel Thouvenin" at Oct 11, 93 11:27:30 am Content-Type: text/plain Sender: weis@margaux > Quelqu'un peut il me dire pourquoi lorsque je compile > un programme Caml light avec l'option -g et que je passe > l'executable genere dans un debugger (xgdb par exmeple) > celui-ci me donne : > > ridiculous string table size (XXXXXX bytes). > > (xxgdb) No symbol table is loaded. Use the "file" command. Moi, je peux. Les programmes produits par Caml Light ne sont pas du code machine, mais du bytecode. Un debugger comme xgdb ne sait traiter que les fichiers de code machine executables au format a.out, c'est-a-dire les executables produits par ld ou cc ou autres compilateurs produisant du vrai code machine. Option -g ou pas, aucun debugger Unix ne comprendra quoi que ce soit aux fichiers executables produits par Caml Light. (Seule exception: si vous employez l'option -custom, le debugger vous permettra de debugger la partie de votre programme ecrite en C; ca marchera encore mieux avec l'option -ccopt -g en plus. Mais ca ne changera rien pour la partie de votre programme ecrite en Caml.) Votre debugger aurait du vous fournir un message d'erreur plus informatif. Ceux que j'utilise disent (camlcomp est un executable produit par Caml Light): $ dbx camlcomp dbx version 2.10.1 Type 'help' for help. reading symbolic information ...ldinitheaders: magic number incorrect (0xa06) dbx: fatal error: can't open camlcomp $ gdb camlcomp GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.9, Copyright 1993 Free Software Foundation, Inc... "/u3/users/xavier/lib/caml-light/camlcomp": not in executable format: File format not recognized. Voila qui est clair et net. (adb ne dit rien, bien sur, mais c'est une des principales features d'adb: de pouvoir operer sur n'importe quel fichier.) > Que puis je faire ?? ... pour debugger du code Caml Light? Utiliser la trace, instrumenter le code (avec des affichages de messages), et autres recettes classiques. Nous n'avons pas de debugger dans le style de gdb pour Caml Light. L'option -g est un (tout petit) premier pas dans cette direction, mais un travail considerable reste a faire. - Xavier Leroy