Tout en regardant un fichier dex, je remarque que dans debug_info_item
associée à chaque code_item
, il est possible d'avoir:Dex DEBUG_INFO Format
DBG_END_LOCAL
sansDBG_START_LOCAL
avec le même registre avant qu'ilDBG_START_LOCAL
pour un registre qui a déjà un nom d'information de débogage défini et pas encore fermé (bien que cela arrive beaucoup plus rarement)
Je ne comprends pas comment je suis supposé analyser ces cas. Y at-il quelque chose que je ne comprends pas sur le format debug_info_item
(https://source.android.com/devices/tech/dalvik/dex-format.html)?
Aussi, pour vous assurer, suis-je raison que:
- Les instructions
DBG_START_LOCAL
etDBG_END_LOCAL
définissent un nom de débogage juste pour les instructions contenues dans la plage d'adresses, et une instructionjump
de cette gamme ferait le nom disparaît, même si le pointeur d'instruction ne passe pas par l'adresse pointée parDBG_END_LOCAL
- Un registre est utilisé pour une seule variable, et il ne devrait pas y avoir différents noms de débogage pour le même registre à l'intérieur de la même fonction