ELFLib

Segger ELFLib è una libreria che consente di estrarre informazioni da file in formato ELF, siano esse informazioni relative al formato ELF (es. informazioni sulle sezioni), oppure informazioni di debug specifiche del compilatore (variabili, funzioni, i loro tipi, indirizzi, ecc.).

Segger ELFLib è una soluzione perfetta per creare delle utility di visualizzazione o di controllo del target.
La libreria consente di estrarre informazioni di debug come gli indirizzi delle variabili dalle applicazioni target. Mentre il formato DWARF in generale specifica come interpretare le informazioni di debug, a causa delle differenze tra i compilatori, difficilmente un IDE riesce ad interpretare correttamente un file ELF generato da un altro IDE. Segger ELFLib supera questi problemi.

Che cos’é il formato ELF?

ELF è un acronimo per Executable and Linkable Format, un formato standard per descrivere i file eseguibili e il codice oggetto. Mentre ELF definisce la struttura del file (dove trovare che informazioni), esso è spesso combinato con il formato di debug DWARF per rappresentare informazioni quali: dove siano le variabili in memorie, di quale tipo siano, ecc.

Utilizzi possibili

Molti IDE hanno vari modi di visualizzare e interpretare i dati estratti dall’applicazione target. Tuttavia, in molti casi, questi modi di rappresentare le informazioni non si adattano alle esigenze specifiche del cliente e vincolano all’uso di un IDE che potrebbe non supportare l’architettura di interesse. Con Segger ELFLib è possibile creare applicazioni che possono visualizzare tali dati facendo venire meno la dipendenza dall’IDE utilizzato durante lo sviluppo.

Un uso tipico di ELFLib è quello di utilizzarlo per monitorare e modificare i valori di variabili di un’applicazione che gira nel target, senza la necessità di implementare un protocollo ad hoc all’interno dell’applicazione per ottenere tali dati. In questo modo l’applicazione non deve essere modificata.

Cosa viene consegnato

ELFLib è consegnato sotto forma di libreria statica (il codice sorgente è a richiesta) disponibile per Windows, Linux e MacOS. Con la consegna viene fornita un’applicazione di esempio che dimostra l’uso delle API della libreria.

Licenza

La licenza cui è soggetto questo prodotto è la “Company Wide” (utilizzabile all’interno dell’azienda per sviluppare un numero illimitato di applicazioni basate su questa libreria).