0
ответов

Найдите, какая инструкция сборки вызвала ошибку Illegal Instruction без отладки

При запуске программы, которую я написал на сборки, я получаю недопустимую ошибку инструкции. Есть ли способ узнать, какая инструкция вызывает ошибку, без отладки, потому что машина, на которой я...
вопрос задан: 21 April 2015 21:12
0
ответов

Как сохранить регистры на x86_64 для подпрограммы обслуживания прерывания?

Я ищу некоторые старый код из школьного проекта, и при попытке скомпилировать его на моем ноутбуке я столкнулся с некоторыми проблемами. Изначально он был написан для старой 32-битной версии gcc. Как бы то ни было, я пытался ...
вопрос задан: 22 March 2015 14:35
0
ответов

массовое переключение между x64 x86 в проектах установки

У меня ОГРОМНОЕ решение в VS2010. существует около 60 проектов (максимум библиотеки классов и сторонние зависимости, которые мне нужно установить) и более 60 проектов типа установочного проекта. Конечно, я хочу ...
вопрос задан: 21 March 2015 12:29
0
ответов

Неверный регистр eip?

Я отлаживаю программу c с помощью gdb в терминале Linux, я разобрал ее и запустил, затем попытался найти адрес памяти в регистре EIP. Вот что произошло: (gdb) i r eip Неверный регистр `...
вопрос задан: 9 January 2015 13:48
0
ответов

Производительность современного процессора

При выполнении на современном процессоре (AMD Phenom II 1090T), сколько тактов тактовой частоты потребляет следующий код с большей вероятностью: 3 или 11? label: mov (% rsi),% rax adc% rax, (% rdx) lea 8 (...
вопрос задан: 18 November 2014 01:40
0
ответов

Узнайте, является ли файл ipa 32 или 64-разрядным. (MacOS / Unix)

У нас есть несколько архивов в нашем месте сборки. Есть ли способ определить, является ли он 32 или 64-битным? Так что я могу сгруппировать их соответственно. Я попробовал файловую команду. но это не давало информации, которую я смотрю ...
вопрос задан: 15 November 2014 10:37
0
ответов

Являются ли атомарные переменные блокировкой-свободными?

Когда мы говорим об атомарных переменных, таких как atomic<> в C++11, блокируется ли она? Или lock-freeness — это что-то другое? Если я управляю очередью с атомарными переменными, будет ли она работать медленнее, чем блокировка-...
вопрос задан: 12 January 2014 18:08
0
ответов

Как интерпретировать этот код операции сборки x86_64?

Глядя на ассемблерный код для x86_64 на моем Mac, я вижу следующую инструкцию: 48 c7 c0 01 00 00 00 movq $0x1,%rax Но я нигде не могу найти ссылку, которая разбивает код операции. Кажется...
вопрос задан: 4 October 2013 00:57
0
ответов

Построение графа потока управления с использованием результатов Objdump

Я пытаюсь создать контрольный- потоковый граф результатов сборки, возвращаемых вызовом objdump -d. На данный момент лучший метод, который я придумал, - это поместить каждую строку результата в ...
вопрос задан: 23 March 2013 05:43
0
ответов

Определение значений регистров при использовании objdump

Итак, я пытаюсь использовать утилиту objdump для построения графа потока управления из сборки, и у меня возникает проблема. В принципе, всякий раз, когда возникает ветвь и целевой адрес является относительным, я не ...
вопрос задан: 22 March 2013 22:14
0
ответов

Не могу выделить 2-4 Гб оперативной памяти с помощью new[]/ C++/Linux/ x86_64

Для этого простого теста, и linux box с 4Gb или RAM, 0byte swap и CPU в режиме x86_64, я не могу выделить более 1 Гб массива. Источник: #include int main() { for(int i=0;i<...
вопрос задан: 1 February 2013 17:42
0
ответов

Соглашение о вызовах ассемблера 32-битное против 64-битного

Я читал отличную книгу Programming Ground Up, желая изучить ассемблер. Я хотел вызвать свою функцию сборки из C. на 32-битной машине, хотя и не в этой книге, ...
вопрос задан: 16 January 2013 07:37
0
ответов

ОШИБКА: ld.so: объект 'getpid.so' из LD_PRELOAD не может быть предварительно загружен: игнорируется

Когда я пытаюсь использовать LD_PRELOAD следующим образом, LD_PRELOAD = getpid.so. / testpid Я получаю следующую ошибку ... ОШИБКА: ld.so: объект 'getpid.so' из LD_PRELOAD не может быть предварительно загружен: игнорируется. Я компилирую ...
вопрос задан: 11 January 2013 12:06
0
ответов

Оптимизация x64 ассемблера для цикла MUL

Я пишу математический код, который должен быстро умножать большие числа. Он разбивается на умножения массива целых чисел с одним целым числом. В C ++ это выглядит так (без знака): void ...
вопрос задан: 21 December 2012 09:16
0
ответов

Что вызывает сбои страниц?

Согласно Википедии: сбой страницы - это ловушка для программного обеспечения, вызываемая оборудованием, когда программа обращается к странице, отображаемой в виртуальном адресном пространстве, но не загруженной в физическую память. (...
вопрос задан: 11 November 2012 06:45
0
ответов

x86_64: Возможна ли «прямая замена» ссылок PLT/GOT?

Я не уверен, что это хорошая тема для этого вопроса, но здесь мы идем ... Чтобы обеспечить локальность/компактность кода для критической части кода, я ищу способ вызвать функция ...
вопрос задан: 16 September 2012 18:58
0
ответов

AMD APP OpenCL SDK на Intel

Я видел, что образцы AMD APP SDK работают на машине, имеющей только процессор Intel. Как это может произойти? Как компилятор ориентируется на другую архитектуру машины? Разве мне не нужен интеловский набор...
вопрос задан: 12 August 2012 05:16
0
ответов

Почему GCC сгенерировал mov %eax,%eax и что это значит?

GCC 4.4.3 сгенерировал следующую сборку x86 _64. Меня смущает то, что mov %eax,%eax. Переместить реестр к себе? Почему? 23b6c :31 c9 xor %ecx,%ecx ;...
вопрос задан: 10 August 2012 23:26
0
ответов

Хэш-функция для разрядности от 64 до 10 бит

Мне нужна хэш-функция, которая принимает длинное число (64 бита )и дает результат 10 бит. Какова лучшая хэш-функция для этой цели. Входы в основном представляют собой адреса переменных (Адреса представляют собой...
вопрос задан: 6 July 2012 09:25
0
ответов

Как включить статическую библиотеку в make-файл

У меня есть следующий make-файл CXXFILES = pthreads.cpp CXXFLAGS = -O3 -o prog -rdynamic -D _GNU _SOURCE -L./libmine LIBS = -lpthread -ldl all :$ (CXX )$ (CXXFILES )$ (LIBS )$ (CXXFLAGS )clean :...
вопрос задан: 5 July 2012 13:06
0
ответов

Почему setjmp (3 )не сохраняет все регистры на AMD64?

Я просматривал исходники различных реализаций setjmp и longjmp и заметил, что не все регистры ЦП сохраняются в структуре jmp _buf. Изучив ABI AMD64, я...
вопрос задан: 1 July 2012 20:25
0
ответов

Как Linux поддерживает более 512 ГБ диапазона виртуальных адресов в x86-64?

Виртуальное адресное пространство пользователя для x86-64 с Linux имеет длину 47 бит. По сути, это означает, что Linux может отображать процесс с диапазоном виртуальных адресов около 128 ТБ. Однако что меня смущает, что...
вопрос задан: 30 June 2012 13:57
0
ответов

Linux: Большой массив целых чисел: mmap vs seek file?

Предположим, у меня есть набор данных, который представляет собой массив из 1e12 32-битных целых чисел (4 ТБ), хранящихся в файле на файловой системе ext4 жесткого диска емкостью 4 ТБ. Учтите, что данные, скорее всего, случайны (или, по крайней мере, кажу
вопрос задан: 14 June 2012 11:58
0
ответов

На большинстве современных 64-битных процессоров скорость `mulq` зависит от операндов?

На большинстве современных 64-разрядных процессорах (таких как Intel Core 2 Duo или Intel серии i7) зависит ли скорость выполнения команды x86_64 mulq и ее вариантов от операндов? Например, умножение 11 * ...
вопрос задан: 5 June 2012 19:49
0
ответов

О коде x86_64, скомпилированном gcc, и оптимизации кода C

Я скомпилировал следующий код C: typedef struct { long x, y, z; } Фу; длинный бар (Foo * f, длинный i) { вернуть f[i].x + f[i].y + f[i].z; } командой gcc -S -O3 test.c. Вот Бар...
вопрос задан: 4 June 2012 19:21
0
ответов

Как malloc работает в многопоточной среде?

Типичный malloc (для платформы x86-64 и ОС Linux) просто блокирует мьютекс в начале и освобождает его по завершении, или он блокирует мьютекс более умным способом на более тонком уровне, так что блокировка . ..
вопрос задан: 23 May 2012 15:14
0
ответов

Это хороший способ перехвата системных вызовов?

Я пишу инструмент. Частью этого инструмента будет его способность регистрировать параметры системных вызовов. Хорошо, я могу использовать ptrace для этой цели, но ptrace довольно медленный. Пришел более быстрый способ...
вопрос задан: 21 May 2012 16:08
0
ответов

Значение двойного подчеркивания в начале

В стандартной библиотеке (glibc) я вижу функции, определенные с ведущими двойными подчеркиваниями, такие как __mmap в sys /мман.ч. Какова цель? И как мы все еще можем вызывать функцию mmap, которая не кажется...
вопрос задан: 21 May 2012 14:20
0
ответов

Как читать данные с абсолютного адреса в delphi XE2

Допустим, я хочу читать с абсолютного адреса gs: $ 30 в 64-битный режим, поэтому код asm выглядит примерно так: asm mov rax, gs: [$ 30] конец; ... и компилятор преобразует этот код в ... 65 48 8B ...
вопрос задан: 17 May 2012 12:11
0
ответов

Я не понимаю, почему компилятор выдает мне ошибку с этим кодом

У меня есть следующий код C, который мне кажется очень правильным. Однако компилятор clang (на самом деле, gcc или любой другой компилятор C) думает иначе. структура typedef { структура времени td_start; ...
вопрос задан: 15 May 2012 14:43