Domanda

mi chiedevo se qualcuno qui aveva scritto / utilizza uno script che analizza l'output di objdump e loro estratti codici operativi da esso? Ho un'implementazione molto molto banale, ma sto cercando qualcosa di meglio.

Il problema che sto affrontando con questo script è semplicemente che lo fa semplice analisi stringa; questo è più di uno script di utilità, e questo è il motivo per cui non ho scritto test per questi. Mi chiedevo se lo stesso potrebbe essere fatto scrivendo un parser su misura o un semplice ma efficace espressione regolare.

Questa query è per fini di apprendimento, in modo che possa affrontare un tale problema in un (si spera) una migliore modo la prossima volta.

Non ho niente le specifiche di attuazione (shell, Ruby, Python, Perl, nulla farebbe). Il codice non importa nemmeno più di tanto, in realtà, mi piacerebbe alcuni suggerimenti su come si dovrebbe fare.

È stato utile?

Soluzione

Mi dispiace se questo non è quello che volevi, ma la vostra pasta non è più disponibile.

Ecco un rapido suggerimento. Diverse parti della produzione sono separati da tabulazioni.

'  402000:\t14 43                \tadc    $0x43,%al\n'

Questo dovrebbe iniziare:

>>> r
'  402000:\t14 43                \tadc    $0x43,%al\n'
>>> r = r.strip()
>>> r
'402000:\t14 43                \tadc    $0x43,%al'
>>> r = r.split('\t')
>>> r
['402000:', '14 43                ', 'adc    $0x43,%al']
>>> r[1] = r[1].strip()
>>> r
['402000:', '14 43', 'adc    $0x43,%al']

Altri suggerimenti

La soluzione migliore sarebbe quella di costruire objdump dai sorgenti e fare un pitone o involucro altra lingua sorso che ottiene direttamente l'uscita. Si può fare con l'analisi stringa, ma questo è spesso buggy (leggi come attuata male). E 'sicuramente possibile fare la stringa parsing corretto ... Ho un programma di utilità che si basa su questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top