C'è un modo per ottenere un elenco di funzioni che NON sono state allineate ovunque? O passando un'opzione a gcc o ispezionando il binario?Come scoprire quali funzioni NON erano in linea
MODIFICA: so come chiedere esplicitamente che una funzione non venga evidenziata utilizzando l'attributo incorporato di gcc noinline.
Non è corretto. Le funzioni non statiche verranno emesse indipendentemente dal fatto che siano state allineate o meno. – Mat
@ Mat, no. Il modello inlining per C++ è probabilmente un po 'più complicato, ma per C (C99 e C11) un simbolo viene emesso solo in un'unità di traduzione che richiede una "istanziazione" del simbolo, cioè per C che ha una definizione * in linea * e una dichiarazione esterna. –
@Als, +1, ma forse potresti essere un po 'più preciso. Un nome di simbolo può essere presente come un simbolo non definito o per la definizione del simbolo. Se definisce o meno il simbolo dipende molto dai modelli di istanziazione, penso che potrebbero essere abbastanza diversi in diverse implementazioni in C++ (la mia conoscenza del C++ qui è un po 'arrugginita) e in C. –