g ++ сгенерированный блок выглядит ужасным

Нет никаких HTTP-заголовков, которые сообщат о клиентском часовом поясе до сих пор, хотя было предложено включать его в Спецификацию HTTP.

, Если бы это был я, я, вероятно, попытался бы выбрать часовой пояс с помощью стороны клиента JavaScript и затем отправить его серверу с помощью Ajax или чего-то.

9
задан Llamageddon 14 June 2012 в 01:20
поделиться

4 ответа

Я не считаю asm g ++ "уродливым" или трудным для понимания, хотя я работаю с GCC уже более 8 лет.

В Linux метки функций обычно обозначаются _ZN, префиксом «_ZN» является токен, обозначающий изменение имени C ++ (в отличие от C), за которым следует пространство имен, которому принадлежит функция, затем имена функций и типы аргументов, затем шаблоны, если есть.

Пример:

    // tests::vec4::testEquality()
    _ZN5tests4vec412testEqualityEv

    _ZN - C++ mangling, 'N' for member (_ZZ for const or others)
    5tests - length (5 chars) + name
    4vec4 -length (4 chars) + sub namespace
    12testEquality - length (12 chars) + function name
    Ev - void argument (none)
25
ответ дан 4 December 2019 в 05:56
поделиться

Из man g ++ :

-fverbose-asm
Поместите дополнительные комментарии в сгенерированный ассемблерный код, чтобы сделать его больше удобочитаемый. Этот вариант обычно используется только для тех, кому действительно нужно прочитать сгенерированный код сборки (возможно, при отладке самого компилятора).

18
ответ дан 4 December 2019 в 05:56
поделиться

Если вы смотрите на соглашение об именах для внешних символов, то это будет соответствовать соглашению об изменении имен платформы, которую вы используете. Это можно изменить с помощью программы c ++ filter , которая предоставит вам удобочитаемую версию имен функций C ++, хотя они (по всей вероятности) больше не будут действительными символами компоновщика.

Если вы просто смотрите на локальные метки функций, то вам не повезло. Выходные данные ассемблера g ++ предназначены для общения с ассемблером и на самом деле не предназначены для облегчения понимания человеком. Он будет генерировать набор относительно бессмысленных ярлыков.

12
ответ дан 4 December 2019 в 05:56
поделиться

Если код содержит отладочную информацию, objdump может предоставить более полезную разборку:

-S, --source             Intermix source code with disassembly
-l, --line-numbers             Include line numbers and filenames in output
5
ответ дан 4 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: