Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

346
Visualizações
¿Cómo imprimir el seguimiento de la pila de subprocesos actual dentro del kernel de Linux?

Me gustaría poder imprimir el seguimiento de la pila de un hilo en el kernel de Linux.

En detalles: quiero agregar código a funciones específicas (por ejemplo swap_writepage() ) que imprimirá el seguimiento completo de la pila del hilo donde se llama a esta función. Algo como esto:

 int swap_writepage(struct page *page, struct writeback_control *wbc) { /* code goes here to print stack trace */ int ret = 0; if (try_to_free_swap(page)) { unlock_page(page); goto out; } if (frontswap_store(page) == 0) { set_page_writeback(page); unlock_page(page); end_page_writeback(page); goto out; } ret = __swap_writepage(page, wbc, end_swap_bio_write); out: return ret; }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El kernel de Linux tiene una función muy conocida llamada dump_stack() aquí , que imprime el contenido de la pila. Colóquelo en su función de acuerdo con la información de la pila.

over 4 years ago · Santiago Trujillo Relatório

0

@rakib tiene toda la razón, por supuesto.

Además, me gustaría señalar que se pueden definir macros simples y elegantes que ayudan a imprimir información de depuración cuando sea necesario. A lo largo de los años, he puesto estas macros y rutinas de conveniencia en un archivo de encabezado; puede consultarlo y descargarlo aquí: "Un encabezado de conveniencia" .

Hay macros/funciones para:

  • haga impresiones de depuración junto con la información de nombre de función / línea # (a través de printk() habitual o trace_printk()) y solo si el modo DEBUG está activado
  • volcar la pila en modo kernel
  • imprime el contexto actual (proceso o interrupción junto con banderas en la forma que usa ftrace )
  • una simple macro de afirmación () (!)
  • un DELAY_LOOP intensivo en CPU (útil para equipos de prueba que deben girar en el procesador)
  • un equivalente a la funcionalidad de suspensión del modo de usuario
  • una función para calcular el delta de tiempo dadas dos marcas de tiempo (estructuras de valor de tiempo)
  • convertir decimal a binario, y
  • un poco mas.

Vaya :-)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda