Копирует значение символа .value
, возможно, определенного где-то в сборке или сценарии компоновщика, в переменную C curbrk
, что приводит к засорению регистра RAX
в процессе.
.curbrk
, вероятно, указывает на текущий конец сегмента данных. Похоже, Glibc определяет похожий символ __curbrk
, вы, вероятно, используете какой-то другой libc (BSD?). В любом случае, sbrk(0)
будет более портативным способом доступа к этому значению.
Посмотрев на перекрестную ссылку FreeBSD, я могу сказать, что она действительно указывает на текущий конец сегмента данных: он используется как в brk()
, так и в sbrk()
, используя макрос HIDENAME для добавления .
, и он появляется в System.map amd64 (это версия сценария компоновщика FreeBSD?).