Как интерпретировать @abc (01) в имени динамического символа файла в формате .so ELF?

Это решение работает, как и многие другие, и фактически использует одно и то же регулярное выражение, как и одно из них, однако вместо возврата строки HTML это вернет фрагмент документа, содержащий элемент A и любые применимые текстовые узлы.

 function make_link(string) {
    var words = string.split(' '),
        ret = document.createDocumentFragment();
    for (var i = 0, l = words.length; i < l; i++) {
        if (words[i].match(/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi)) {
            var elm = document.createElement('a');
            elm.href = words[i];
            elm.textContent = words[i];
            if (ret.childNodes.length > 0) {
                ret.lastChild.textContent += ' ';
            }
            ret.appendChild(elm);
        } else {
            if (ret.lastChild && ret.lastChild.nodeType === 3) {
                ret.lastChild.textContent += ' ' + words[i];
            } else {
                ret.appendChild(document.createTextNode(' ' + words[i]));
            }
        }
    }
    return ret;
}

Есть некоторые предостережения, а именно, с более старой поддержкой IE и textContent.

здесь является демонстрацией.

0
задан gebbissimo 18 January 2019 в 08:50
поделиться

1 ответ

Что означают (18) и (21) соответственно?

Это значение .vd_version из соответствующего определения версии (ElfXX_Verdef в elf.h) , Например:

readelf -Ws /bin/date | egrep ' (setenv|clock_gettime)'
    14: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND clock_gettime@GLIBC_2.17 (5)
    15: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND setenv@GLIBC_2.2.5 (3)

readelf -V /bin/date
...
Version needs section '.gnu.version_r' contains 1 entry:
 Addr: 0x0000000000000fd8  Offset: 0x000fd8  Link: 6 (.dynstr)
  000000: Version: 1  File: libc.so.6  Cnt: 6
  0x0010:   Name: GLIBC_2.14  Flags: none  Version: 7
  0x0020:   Name: GLIBC_2.4  Flags: none  Version: 6
  0x0030:   Name: GLIBC_2.17  Flags: none  Version: 5
  0x0040:   Name: GLIBC_2.3.4  Flags: none  Version: 4
  0x0050:   Name: GLIBC_2.2.5  Flags: none  Version: 3
  0x0060:   Name: GLIBC_2.3  Flags: none  Version: 2

Обратите внимание, что GLIBC_2.2.5 имеет Version: 3, а GLIBC_2.17 имеет Version: 5.

0
ответ дан Employed Russian 18 January 2019 в 08:50
поделиться
Другие вопросы по тегам:

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