Cuál es la depuración del GNU

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

Gdb es la depuración de la fundación libre del software. Es una buena comando-li'nea depuración, en la cual varias herramientas se han construido, incluyendo el modo del gdb de Emacs, la depuración gráfica de la exhibición de datos (DDD), y depuraciones incorporadas en varios IDEs gráfico. Cubrimos solamente el gdb en este artículo.

Comience el gdb funcionando el progname del gdb. Gdb no buscará la TRAYECTORIA que busca el fichero ejecutable. Gdb cargará los símbolos ejecutables y después le incitará para que qué haga después.

Hay tres maneras de examinar un proceso con el gdb:

  • Utilice el comando del funcionamiento de comenzar el programa normalmente.

  • Utilice el comando de la fijación de comenzar a examinar un proceso de ya-funcionamiento. Cuando usted une a un proceso, el proceso será parado.

  • Examine un archivo existente de base para determinar el estado del proceso cuando fue matado. Para examinar un archivo de base, comience el gdb con el progname del gdb del comando corefile.

Antes de que usted funcione un programa o una fijación a un programa de ya-funcionamiento, usted puede fijar los límites de facturación, código de fuente de la lista, y hace cualquier cosa otro que no implica necesariamente un proceso corriente.

Gdb no requiere que usted mecanografíe nombres enteros del comando; r es suficiente para funcionar, n para después, s para el paso. Además, repetir el comando más reciente, simplemente vuelta del golpe. Esto hace solo-caminar fácil.

Una selección corta de los comandos útiles del gdb se incluye aquí; el gdb incluye un manual en línea comprensivo en el formato del GNU Info (gdb del funcionamiento Info) que explica todas las opciones de los gdb detalladamente en un formato preceptoral. La programación con software del GNU contiene una buena clase particular detallada en usar gdb. Gdb también incluye la ayuda en línea extensa disponible dentro de gdb; téngale acceso con el comando de la ayuda. La ayuda específica en cada comando está disponible con el commandname de la ayuda o el asunto de la ayuda.

Justo como cáscara ordena, los comandos del gdb puede tomar discusiones. Utilizamos "ayuda de la llamada con una discusión del comando" de significar igual que el "tipo comando de la ayuda".

Algunos comandos del gdb también toman identificadores del formato para identificar cómo imprimir valores. Los identificadores del formato siguen inmediatamente el nombre del comando y son separados del nombre del comando por una raya vertical. Una vez que usted haya elegido un formato, usted no tiene que utilizarlo cada vez que usted repite el comando; el gdb recordará el formato que usted eligió como el defecto.

Los identificadores del formato son separados de comandos por a/el carácter y compuestos de tres elementos: una cuenta, una letra del formato, y una letra del tamaño. Las letras de la cuenta y del tamaño son opcionales; la cuenta omite 1, y el tamaño tiene defectos razonables basados en la letra del formato.

Las letras del formato son o para octal, x para el hexadecimal, d para el decimal, u para el decimal sin firmar, t para binario, f para floating-point, a para la dirección, i para la instrucción, c para el carácter, y s para la secuencia.

Las letras del tamaño son b para el octeto, h para la media palabra (2 octetos), W para la palabra (4 octetos), y g para el gigante (8 octetos).

fijación, en Fijación a un proceso de ya-funcionamiento. La única discusión es el pid del proceso a el cual unir. Esto para los procesos a los cuales usted fijación, interrumpiendo el cualquier sueño o la otra llamada interrumpible del sistema en marcha. Vea para separar.
backtrace, bt, donde, W Imprima un rastro de apilado.
rómpase, b Fije un límite de facturación. Usted puede especificar un nombre de la función, una línea número del archivo actual (el archivo que contiene el código actualmente el ejecutarse), un nombre de fichero: par del linenumber, o aún una dirección arbitraria con * la dirección. Gdb asigna y le dice un número único para cada límite de facturación. Vea la condición, el claro, y la cancelación.
despeje Despeje un límite de facturación. Toma las mismas discusiones que rotura. Vea la cancelación.
condición Cambia un límite de facturación especificado por número (véase la rotura) para romperse solamente si una condición es verdad. La condición se expresa como expresión arbitraria.
 
(gdb) límite de facturación 3 de b 664 en 0x804a5c0: 
archive ladsh4.c, alinee 664. el == 0 del estado de la 
condición 3 (del gdb)  

cancelación Despeje un límite de facturación por número.
separe Separe del proceso actualmente unido.
exhibición Exhiba el valor de una expresión cada vez que la ejecución para. Toma las mismas discusiones (modificantes incluyendo del formato) como impresión. Imprime un número de la exhibición que se pueda utilizar más adelante para cancelar la exhibición. Vea undisplay.
ayuda Consiga la ayuda. Llamado sin la discusión, proporciona un resumen de la ayuda disponible. Llamado con otro comando como discusión, proporciona ayuda en ese comando. Hecho una remisión extensivamente.
salto Salte a una dirección arbitraria y continúe la ejecución allí. La dirección es la única discusión, y puede ser especificado pues una línea número o como una dirección especificó como * dirección.
lista, l Sin la discusión, la lista primera enumera las 10 líneas que rodean la dirección actual. Las llamadas subsecuentes a la lista enumeran las secciones subsecuentes de 10 líneas. Con una discusión de -, listas las 10 líneas anteriores.
  Con una línea número, listas las 10 líneas que rodean esa línea. Con un nombre de fichero: par del linenumber, listas las 10 líneas que rodean esa línea. Con un nombre de la función, listas las 10 líneas que rodean el principio de la función. Con una dirección especificada como * la dirección, especifica las 10 líneas que rodean el código encontrado en esa dirección.
  Con dos la línea especificaciones se separó por comas, enumera todas las líneas entre las dos líneas especificadas.
después, n Camine a la línea siguiente del código de fuente en la función actual; haga las llamadas de función sin caminar. Vea el paso.
nexti Paso a la instrucción siguiente de la terminología de la informática; haga las llamadas de función sin caminar. Vea el stepi.
imprima, p Imprima el valor de una expresión en una representación comprensible. Si usted tiene un *c del carbón, la impresión c del comando imprimirá la dirección de la secuencia, y el *c de la impresión imprimirá la secuencia sí mismo. La impresión de las estructuras ampliará las estructuras. Usted puede incluir moldes en sus expresiones, y el gdb las honrará. Si el código fue compilado con - la opción del ggdb, los valores enumerados y las definiciones del preprocesador estarán disponibles para usted para utilizar en sus expresiones. Vea la exhibición.
  Las tomas del comando de impresión ajustaron a formato identificadores, aunque con los tipos apropiados y con typecasts, los identificadores del formato son raramente necesarias. Vea x.
funcione, r Funcione el programa actual del principio. Las discusiones al comando del funcionamiento son las discusiones que serían utilizadas para funcionar el programa sobre la línea de comando. Gdb hará el ca'scara-estilo globbing con * y [ ], y hará el cambio de dirección del ca'scara-estilo con <, >, y > >, pero no hará las pipas o aquí los documentos.
  Sin discusiones, el funcionamiento utiliza las discusiones que fueron especificadas en el comando más reciente del funcionamiento, o en el sistema más reciente los args ordenan. Para funcionar sin discusiones después de funcionar con discusiones, utilice los args del sistema ordenan sin discusiones adicionales.
fije Gdb permite que usted cambie los valores de variables, como esto:
 
(gdb) fije a = argv[5 ]  

  También, siempre que usted imprima una expresión, el gdb le da una variable de la taquigrafía, como $1, que usted puede utilizar para referirle más adelante. Tan si usted había impreso previamente argv[5 ] y el gdb le tenía dicho que fuera $6, usted podría escribir la asignación anterior como
 
(gdb) fije a = $ 6  

  El comando determinado también tiene muchos submandatos, lejos demasiado numerosos a enumerar aquí. Utilice la ayuda fijada para más información.
paso, s Camina la instrucción de programa por la instrucción hasta que alcanza una nueva línea del código de fuente. Vea después.
stepi Ejecute exactamente una instrucción de la terminología de la informática; rastros en llamadas de función. Vea el nexti.
undisplay Sin cualquier discusión, cancelaciones todas exhibiciones. Si no, cancelaciones las exhibiciones que números se dan como discusiones. Vea la exhibición.
whatis Imprime el tipo de datos de una expresión dada como su discusión.
donde, W Vea el backtrace.
x El comando de x es como el comando de impresión, excepto que está limitado explícitamente a imprimir el contenido de una dirección en un cierto formato arbitrario. Si usted no utiliza un identificador del formato, el gdb utilizará el identificador lo más recientemente posible especificado del formato.
esto es un artículo agregado por Humberto Mitchson


Negación: Nuestro Web site no es responsable de la información contenida por este artículo. Este artículo de ninguna manera refleja las vistas, las opiniones, los pensamientos o la creencia del personal del directorio de los artículos.

Aviso de la traducción: El artículo "cuál es la depuración del GNU" fue traducido usando un servicio de traducción automatizado. Nos disculpamos sinceramente por cualquier error de la traducción que ocurriera. Gracias por entender.


Online: 1575 users browsing the articles directory