Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

244
Vistas
usage of linker commands for clang static analysis

I am developing a static analysis tool with python-clang-3.6 library that would let me to draw function call-graphs.

To properly create TranslationUnit I need to use corresponding compile command (i.e. clang.cindex.Index.parse(c_file, compile_command) ). However, I believe, to be able to properly interconnect TranslationUnits I would also need to use linker commands to know which TranslationUnit uses functions from other TranslationUnits. This is a problem in my project where there are actually multiple binaries being built with a single "make" invocation and some TranslationUnits might possibly have colliding symbol names, so I can't assume that all of them are inter-connected.

What is the best way to address this issue so that my tool would know which functions in C file could call functions from other C files?

For now I see two options:

  1. Somehow retrieve and use linker commands; This option seems tricky because it is not directly supported in clang (at least clang python library); or
  2. At the time when traversing TranslationUnit's AST tree remember the location of function declaration in the Header file. This option seems tricky if due to macro processing I would get different line numbers or have implicit function declarations for different TranslationUnits.

Are there any other options? Which option and why would chose you?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

I'm not sure if it's necessary to extract the information from the sources using clang, or if you can simply extract the information from the resulting binaries.

If you want to see the symbols used in the binary you could use

readelf -s <file>

This lists the symbol table and you can extract if the symbol is provided by the binary or is required (imported).

Using

readelf -d <file> | grep NEEDED

you get a list of dependent libraries.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda