Вопросы с тегом 'abi'

(Application Binary Interface) определяет интерфейс низкого уровня между программами, библиотеками и операционной системой. Например. которые регистры используются для передачи параметров функции.
6

Допускает ли стандарт C++ неинициализированный bool для сбоя программы?

Я знаю, что "неопределенное поведение" в C++ может позволить компилятору делать все, что он хочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код был достаточно безопасным. В этом случае настоящая проблема возникл...
10 янв. '19 в 1:39
16

Что такое двоичный интерфейс приложения (ABI)?

Я никогда не понимал, что такое ABI. Пожалуйста, не указывайте мне статью в Википедии. Если бы я мог это понять, я бы не стал публиковать такие длинные сообщения. Это мое мышление о различных интерфейсах: Пульт дистанционного управления - это инте...
31 янв. '10 в 9:30
9

Разница между API и ABI

Я новичок в системном программировании Linux, и я столкнулся с API и ABI во время чтения Системное программирование Linux. Определение API: API определяет интерфейсы, с помощью которых одна часть программного обеспечения связывает с другим на ...
24 сент. '10 в 5:18
10

Есть ли недостатки для передачи структур по значению в C, а не для передачи указателя?

Есть ли недостатки для передачи структур по значению в C, а не для передачи указателя? Если структура велика, очевидно, что для копирования большого количества данных явно характерен аспект, но для небольшой структуры она должна быть в основном тако...
02 окт. '08 в 11:21
5

Что такое вызывающие соглашения для системных вызовов UNIX и Linux на i386 и x86-64

Следующие ссылки объясняют условные обозначения системных вызовов x86-32 как для UNIX (BSD flavor), так и для Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но како...
29 мар. '10 в 5:48
9

Каково направление роста стека в большинстве современных систем?

Я готовлю некоторые учебные материалы на C, и я хочу, чтобы мои примеры соответствовали типичной модели стека. В каком направлении растет стек C в Linux, Windows, Mac OSX (PPC и x86), Solaris и последние Unix?
20 мар. '09 в 1:58
4

Как безопасно передавать объекты, особенно объекты STL, в и из DLL?

Как передать объекты класса, особенно объекты STL, в/из библиотеки C++? Мое приложение должно взаимодействовать с сторонними плагинами в виде файлов DLL, и я не могу контролировать, с каким компилятором созданы эти плагины. Я знаю, что нет гарантир...
01 апр. '14 в 21:40
4

Почему T * может быть передано в регистр, а unique_ptr<t> не может?

Я смотрю выступление Чендлера Каррута в CppCon 2019: Нет абстракций с нулевой стоимостью в нем он приводит пример того, как он был удивлен тем, сколько накладных расходов вы понесли, используя std::unique_ptr<int> над int*; этот сегмент начин...
11 окт. '19 в 10:19
2

Что именно делает GCC -Wpsabi? Каковы последствия его подавления?

Фон В прошлом году я использовал библиотеку nlohmann json [1] и был кросс-компиляцией на x86_64 с использованием GCC 5.x arm-linux-gnueabi-* без предупреждений. Когда я обновляю GCC до более новой версии, GCC будет генерировать страницы загадочных ...
25 авг. '18 в 18:51
3

Безопасно ли связывать объекты С++ 17, С++ 14 и С++ 11

Предположим, у меня есть три скомпилированных объекта, все они созданы одним и тем же компилятором/версией: A был скомпилирован со стандартом С++ 11 B был составлен с использованием стандарта С++ 14 C был скомпилирован со стандартом С++ 17 Для пр...
14 окт. '17 в 16:36
2

Какая разница между разделом и сегментом в формате файлов ELF

Из wiki Исполняемый и связанный формат: В сегментах содержится информация, необходимая для выполнения файла во время выполнения, а разделы содержат важные данные для компоновки и перемещения. Любой байт во всем файле может принадлежать не более чем...
16 янв. '13 в 14:58
5

Что такое регистры, на которые зарегистрированы вызываемые и вызываемые абоненты?

У меня возникли проблемы с пониманием разницы между списками звонящего и вызываемого абонента и когда использовать что. Я использую MSP430 процедура: mov.w #0,R7 mov.w #0,R6 add.w R6,R7 inc.w R6 cmp.w R12,R6 jl l$loop mov.w R7,R12 ret выш...
13 февр. '12 в 21:51
1

Имеет ли libcxxabi смысл под Linux? Каковы преимущества?

Я пытаюсь определить, имеет ли смысл создание и использование libcxxabi проекта llvm под Linux. Моя сборка libcxxabi связана с ldd libc++abi.so.1.0 linux-vdso.so.1 => (0x00007fff2e0db000) libpthread.so.0 => /lib/x86_64-linux-gnu/li...
19 мар. '14 в 14:54
2

Установка дополнительных битов в bool делает его истинным и ложным одновременно

Если я получу переменную bool и установлю ее второй бит на 1, тогда переменная будет иметь значение true и false одновременно. Скомпилируйте следующий код с gcc6.3 с параметром -g (gcc-v6.3.0/Linux/RHEL6.0-2016-x86_64/bin/g++ -g main.cpp -o mytest_d...
29 мая '19 в 21:58
10

Почему Mac ABI требует 16-байтного выравнивания стека для x86-32?

Я могу понять это требование для старых систем PPC RISC и даже для x86-64, но для старого испробованного x86? В этом случае стек должен быть выровнен только на 4 байтовых границах. Да, некоторые инструкции MMX/SSE требуют 16-битных выравниваний, но е...
04 мар. '09 в 21:12