Flash ABC: что означает числовая часть <file>.as $ <number>в swfdump - PullRequest
1 голос
/ 28 марта 2011

Если я возьму swf и запусту его через swfdump

swfdump.exe -abc file.swf > ABC.txt

При первом запуске я могу получить какой-то вывод в ABC.txt, например:

ObjectConfig.as$60

И при последующем запуске того же SWF-файла получается другой вывод

ObjectConfig.as$61

Что означает число после $?

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Это часть метаданных отладки, которые компилятор mxmlc добавляет к байт-коду при отладке, debug=true.Если вы выполняете обычную компиляцию релиза, эта информация не указывается.

В этих метаданных хранятся имена файлов и номера строк, чтобы вы могли видеть местоположение в исходном коде во время отладки.Хотя я не уверен в точном значении этих конкретных чисел, они кажутся уникальным идентификатором или индексом этого файла для отладчика, возможно, в случае двух классов с одинаковым именем.

1 голос
/ 10 мая 2013

Лучшее, что я вижу, в исходном коде swfdump, он вызывает swf_GetString .Где-то в этой цепочке к концу имени класса добавляется то, что выглядит как debugLine или scopeDepth :

char* swf_GetString(TAG*t)
{
    int pos = t->pos;
    while(t->pos < t->len && swf_GetU8(t));
    /* make sure we always have a trailing zero byte */
    if(t->pos == t->len) {
      if(t->len == t->memsize) {
    swf_ResetWriteBits(t);
    swf_SetU8(t, 0);
    t->len = t->pos;
      }
      t->data[t->len] = 0;
    }
    return (char*)&(t->data[pos]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...