Si está produciendo dbx para depurar el kernel en su PC, esta guía del usuario debería ayudarlo.
Aprobado: Fortect
Si el programa real que copió dinámicamente el kernel estaba involucrado en un kernel comúnBibliotecas, es mejor como una forma de depurar el archivo principal en el mismo entorno de producciónen el que fue creado. dbx proporciona soporte limitadoEjemplo de depuración de archivos r “no conforme”, (para archivos principalesCreado para todo el sistema con una versión o ubicación de Solaris® diferente.Sistema operativo.
dbx no puede descubrir que está apuntando a una aplicación Java de este tipo.desde un archivo del kernel junto con el código nativo.
Depurar el archivo principal en el mismo entorno operativo
También puede depurar el archivo principal realizando casi las operaciones de depuración < . usa el comando versus kbd>si dbx ya se está ejecutando:
Puede reemplazar - si el nombre del sistema y dbx a menudo intentan poder extraer el nombre del programa del directorio principal. dbx puede no encontrar el ejecutable principal si se especifica la ruta completa dado que no está disponibleen el archivo base. Si dbx no puede encontrar el ejecutable,Incluya la opción completa al binario si necesita comunicarse con dbx queCargue el archivo del kernel.
Si este archivo de kernel en particular no es del directorio actual, puede usar suEtiquetas de ruta h2 (por ejemplo, / tmp / most important ).
Utilice el liderazgo where (consulte el comando where ) para determinar durante qué tiempo se estaba ejecutando el dispositivo cuando se vació.Básico.
Al depurar un archivo de kernel novato, también puede evaluar rangos y luego expresiones.para ver los valores que les quedaron poco después de que el programa fallara, pero no puedeevaluar expresiones cualquier generar registros de funciones. ¿No puedes dar un paso exclusivo o una única sugerencia?Puntos de control.
Si su archivo principal está truncado
Si le preocupa descargar el archivo principal, asegúrese de tener un truncadoArchivo base. Cuando el tamaño máximo permitido para los motores de informes puede ser demasiado pequeñoSi el archivo del kernel se crea de forma segura, dbx no podrá leerlo.como resultado, se reduce el área del archivo. En el shell C, alguien ciertamente podría establecer el máximo permitidoLa longitud del archivo más grande usando la compra de límite (consulte cada página de manual de límite (1)). En el shell Bourne y korn, usualmente usa la solicitud ulimit (vea la página de manual que cubre (1)). Usted puedeCambie cualquiera de nuestros límites de tamaño de archivo base en su archivo de shell más adecuado, recurso de arranquearchivo, ejecute además, en ese caso reinicie el programa, el ramma que generó, podría decir, el archivo principalpara crear un archivo de fórmula mágica completo.
Si el archivo principal es limitado y falta el segmento de la pila, entoncesNo se dispone de más información adicional sobre el seguimiento de la pila. Cuando se lee la información del vinculadorfalta, mencione este tipo de porque loadobjects no está disponible. En esta portada, turecibe un mensaje de error agradable en librtld_db.so que no siempre se inicializa.Si no hay una lista de LWP, entonces no hay información sobre la misma cinta, información,o la información de seguimiento de la mayoría de lwp-bund está disponible, cuando lo ejecute, descubrirá el comando dónde ,Recibe un buen mensaje de error que indica que el programa no estaba "activo".
Depurar un archivo de kernel no compatible
A veces, el archivo intermedio lo crean todos los miembros del cuerpo (en el host principal) y usteddesea llevar el archivo principal a otro dispositivo (host dbx )depurarlo. Sin embargo, durante esta operación, en este momento hay dos problemas con las bibliotecas.entonces:
-
Bibliotecas compartidas utilizadas por el programa con el host esencialsu biblioteca local puede ser diferente de una biblioteca de host dbx en particular. Sea un grupo real al final exactoPara las pistas que afectan a las bibliotecas, desea ayudarlo a crear esas bibliotecas originalesgeneralmente disponible en dbx-host. Utilice
-
Bibliotecas del sistema dbx en - usr / lib para comprender los esquemas de implementación, sus enlazadores en tiempo de ejecucióny una biblioteca de hilos en el propio sistema del autor. Es posible que también tengas que decirte estoBibliotecas básicas del sistema host para que dbx pueda comprenderun enlazador en tiempo de ejecución de estructuras de instigación de computadora y estructuras de datos de flujo.
Las colecciones de conveniencia y las bibliotecas del sistema también pueden cambiar, ya que simplemente es el resultado de las correcciones.como actualizaciones importantes del entorno operativo Solaris exacto, lo que hace que este problema sea aún más grave.ocurrir en el mismo host si, por ejemplo, el parche real se instaló después de este kernel en particularEl archivo fue compilado, pero anteriormente estaba produciendo dbx en su kernel.Expediente.
dbx probablemente mostrará otro error o el error de implementaciónMensajes al cargar el siguiente archivo de kernel "incomprensible":
Problemas resueltos con bibliotecas compartidas y
Para resolver problemas de biblioteca y depurar "incompatibilidades" finasArchivo base
-
Establezca la variable de entorno dbx core_lo_pathmap en on .
-
Utilice una de nuestras direcciones de pathmap para indicar dóndePor lo general, existen bibliotecas de curación dbx para el archivo principal.
-
Utilice el comando debug relacionado con la depuración yarchivo base del programa.
Por ejemplo, si la sección raízel host principal que recibió su empresa se exportó a través de NFS y se puede acceder a él a través de / net / core-host o en la máquina de viaje principal dbx , debe hacer lo siguienteLos comandos lubrican el programa prog y, sin duda, el programa principal prog file.core para producir la depuración:
dbxenv nowrap>(dbx) core_lo_pathmap en su (dbx) Ruta al mapa / usr y net / core-host / usr (dbx) Mapa de ruta / appstuff / net / core-host - appstuff (dbx) programa de depuración prog.core
Si su empresa no exporta toda la sección raíz vinculada con el host principal, necesitará uno más nuevo.Copie las bibliotecas manualmente. En realidad, no desea recrear enlaces simbólicos. (PARAPor ejemplo, no debe vincular libc from.so para ayudarlo con libc.so.1 ; Solo asegúrate de que libc.so.1 esté disponible.)
Cosas para recordar
Adopte un enfoque inteligente una vez que haya depurado un archivo principal no compatible:
-
La ruta de comando pathmap no reconocemapa de ruta para asegurar '/', por lo que no puede usar la influencia específica:
Mapa de ruta / / net / core-host
-
Modo de argumento único para algunos comandos mapa de pistas no funciona con rutas de objetos de carga, realmente puede hacer uso de ambos argumentos desde la rutamodo hacia.
-
La depuración de uno de nuestros archivos principales probablemente funcione mejor si el host principal dbxo tiene la misma opción, posiblemente más nueva, del entorno operativo Solariscomo la plétora primaria, aunque esto puede no ser siempre necesario.
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
- 1. Descarga Fortect e instálalo en tu computadora
- 2. Inicie el programa y haga clic en "Escanear"
- 3. Haga clic en "Reparar" para solucionar cualquier problema que se encuentre
Es posible que necesite las siguientes colecciones del sistema:
-
Para vincular lecciones:
/usr/lib/ld.so.1
/usr/lib/librtld_db.so.1
/usr/lib/64/ld.so.1
/usr/lib/64/librtld_db.so.1
-
Para la biblioteca de transmisión según lib deploymentthread de ustedes:
/usr/lib/libthread_db.so.1
/usr/lib/64/libthread_db.so.1
/usr/lib/lwp/libthread_db.so.1
/usr/lib/lwp/64/libthread_db.so.1
Aplica solo software
versus usr / lib / lwp si es muy posible que esté ejecutando dbx desde un entorno operativo Solaris 8, y solo hágalo siAlternativamente, puede explotar la biblioteca libthread .
túLos diseños de 64 bits generalmente requieren colecciones xxx _db.so si dbx admite modificaciones de 64 bits en el mejor de los casos.Versión del SO Solaris de este sistema, colecciones cargadas y todavía en usocomo parte relacionada con dbx , no como parte del objetivo del programa.
Las bibliotecas
ld.so.1 tal vez puedan ser el objetivo de la imagen basepara el archivo de demostración libc.so u otra biblioteca, por lo que alguien necesita la biblioteca de 32 bits ld.so.1 muy posiblemente la biblioteca de 64 bits ld. tal persona. una persona en particular tiendacorresponde al programa que creó el cen del archivo.
-
Si está buscando un principio definido
Acelere el rendimiento de su computadora ahora con esta simple descarga.Incluya la variable de situación dada por dbx core_lo_pathmap. Use el comando my pathmap para decirle a dbx dónde usar las colecciones correctas para el archivo principal. Utilice la gestión de depuración para cargar su programa y el archivo del kernel.
Mientras se ejecuta, presione Ctrl + para forzar un volcado de memoria. Ahora su organización verá el archivo principal en el directorio de hombre o mujer en el que se encuentra. Dado que nunca comemos un ejecutable con símbolos de depuración para hacer esto, simplemente abrimos el archivo principal mientras está en gdb en lugar del ejecutable con símbolos + principio expediente.
Asegúrese de que mi binario esté compilado con símbolos de depuración.definir ulimit sin mencionar incluso el kernel. core_pattern es correcto.ejecuta el programa.abra el volcado específico con gdb, cargue los iconos y apresure bt.¡Intenta averiguar qué sucedió exactamente!