abi

Co to jest interfejs binarny aplikacji (ABI)?

Nigdy nie rozumiałem, czym jest ABI. Proszę nie wskazywać mi artykułu na Wikipedii. Gdybym mógł to zrozumieć, nie byłoby mnie ... itecture (Isa) " specyficzne? Gdzie mogę znaleźć ABI Microsoft Windows? Więc to są najważniejsze pytania, które mnie dręczą.

Jakie są konwencje wywoływania wywołań systemowych UNIX i Linux (i funkcji przestrzeni użytkownika) na i386 i x86-64

Poniższe linki wyjaśniają konwencje wywołań systemowych x86-32 zarówno dla Uniksa (BSD) jak i Linuksa: Http://www.int80h.o ... en/books/developers-handbook/x86-system-calls.html Ale jakie są konwencje wywołań systemowych x86 - 64 na Unixie i Linuksie?

Czy standard C++ pozwala na niezainicjowaną bool ' a na awarię programu?

Wiem, że "undefined behavior" W C++ może pozwolić kompilatorowi robić wszystko, co chce. Jednak miałem awarię, która mnie za ... przypadku implementacja zakładana że wszystkie Boole będą zawierały tylko 0 LUB 1, a każda inna wartość jest niezdefiniowana?

Jakie są konwencje wywołujące wywołania systemu UNIX i Linux na i386 i x86-64

Poniższe linki wyjaśniają konwencje wywołań systemowych x86-32 zarówno dla Uniksa (BSD) jak i Linuksa: Http://www.int80h.o ... en/books/developers-handbook/x86-system-calls.html Ale jakie są konwencje wywołań systemowych x86 - 64 na Unixie i Linuksie?

Różnica między API A ABI

Jestem nowy w programowaniu Systemów linux i natknąłem się na API i ABI podczas czytania Programowanie Systemu Linux . Defin ... ównego ? Jedyną różnicą, jaką znam, jest to, że API jest używane głównie przez programistów, A ABI głównie przez kompilator.

Jaki jest kierunek wzrostu stosu w większości nowoczesnych systemów?

Przygotowuję materiały szkoleniowe w języku C i chcę, aby moje przykłady pasowały do typowego modelu stosu. W jakim kierunku rośnie stos C w systemach Linux, Windows, Mac OSX (PPC i x86), Solaris i najnowszych Unixach?

Jak bezpiecznie przekazać obiekty, zwłaszcza obiekty STL, do i z biblioteki DLL?

Jak przekazać obiekty klas, zwłaszcza obiekty STL, do i z biblioteki DLL C++? Moja aplikacja musi współdziałać z wtyczkami i ... ję sobie sprawę, że nie ma gwarantowanego ABI dla obiektów STL i martwię się o spowodowanie niestabilności w mojej aplikacji.

Jaka jest różnica sekcji i segmentu w formacie pliku ELF

From wiki Executable and Linkable Format : Segmenty zawierają informacje niezbędne do uruchomienia pliku, natomiast sek ... i. Ale jaka jest różnica między sekcją a segmentem? W pliku wykonywalnym ELF, czy segment zawiera jedna czy więcej sekcji?

Czym są rejestry callee i caller saved?

Mam problem ze zrozumieniem różnicy między rejestrami callee i callee i kiedy z czego korzystać. Używam MSP430 : Procedura ... ów. To, co robi procedura, ma trwały wpływ na R12 po wywołaniu. Czy moje rozumienie jest poprawne? Brakuje mi innych rzeczy?

Dlaczego T* może zostać zaliczony do rejestru, a unikalny PST nie?

Oglądam rozmowę Chandlera Carruth ' a w CppCon 2019: Nie ma abstrakcji o zerowym koszcie W nim podaje przykład, jak był ... nt> ptr) noexcept { if (*ptr > 42) { bar(ptr.get()); *ptr = 42; } baz(std::move(ptr)); }

Jakie rejestry są zachowywane przez wywołanie funkcji linux x86-64

Wierzę, że rozumiem, jak linux x86-64 ABI używa rejestrów i stosu do przekazywania parametrów do funkcji (por. poprzednia dys ... to, czy / co rejestry mają być zachowane w całym wywołaniu funkcji. Czyli jakie rejestry gwarantują, że nie zostaną oberwane?

Zgodność GCC ABI

O ile dobrze zrozumiałem, nie jest możliwe łączenie bibliotek, które używają różnych wersji interfejsu binarnego aplikacji GC ... ej z 4.3.1, Jeśli używam, powiedzmy, GCC 4.3.2? Czy jest jakaś matryca, która wymienia wszystkie sposoby łączenia wersji GCC?

Czy C ma standardowe ABI?

Z dyskusji gdzie indziej : C++ nie ma standardowego ABI Ale C też nie, prawda? Na każdej platformie to w zasadzie działa. Nie przydałby się jako lingua franca do komunikacji międzyjęzykowej, gdyby go brakowało. Co o tym myślisz?

Dlaczego Mac ABI wymaga 16-bajtowego wyrównania stosu dla x86-32?

Rozumiem ten wymóg dla starych systemów PPC RISC, a nawet dla x86-64, ale dla starych sprawdzonych x86? W tym przypadku stos ... bręczy. Dam ten temat kiedy indziej, a potem go zamknę... Powiązane To moja ramka, nie obchodzi mnie to. twoja rama stosu!

Czy można mieszać C++ skompilowane z różnymi wersjami tego samego kompilatora

Na przykład mógłbym zmieszać zestaw bibliotek, które zostały skompilowane w GCC-4.6 z GCC-4.9. Zdaję sobie sprawę, że różne ... ie jak VS nie mogą być z MinGW, ale czy różne generacje tego samego kompilatora? Czy mogą wystąpić problemy? Jeśli tak to co?

Co się stanie, jeśli użyjesz 32-bitowego int 0x80 Linux ABI w 64-bitowym kodzie?

int 0x80 na Linuksie zawsze wywołuje 32-bitowy ABI, niezależnie od tego, z jakiego trybu jest wywoływany: args in ebx, ecx, . ... anie, jeśli przekażesz args wskaźników, które mają niezerowe górne połówki? Czy to działa, jeśli podasz 32-bitowe wskaźniki?

Jaki jest format struktury listy x86 64 va?

Ma ktoś referencję do reprezentacji va_list w x86_64 ABI (tej używanej na Linuksie)? Próbuję debugować jakiś kod, w którym stos lub argumenty wydają się uszkodzone i naprawdę pomogłoby zrozumieć, co mam przypuszczać widzieć...

Czy aktualizacje Visual Studio 2012 łamią C++ ABI?

Kiedy Microsoft po raz pierwszy wydał Visual Studio 2012 we wrześniu 2012 roku, ogłosił swój plan dostarczania aktualizacji d ... ła wspominają, że niektóre błędy w generowaniu kodu C++ zostały naprawione, ale przypuszczam, że nie oznacza to zmiany ABI?

Co może "stracić" C/C++, jeśli zdefiniują standard ABI?

Tytuł mówi wszystko. Mówię konkretnie o C/C++, ponieważ obaj uważają to za "problem implementacji". Myślę, że zdefiniowanie s ... łatwić budowanie systemu modułów na nim i wiele innych dobrych rzeczy.co może "stracić" C/C++, jeśli zdefiniują standard ABI?

Jak wyeksponować listę STL nad granicą DLL?

Mam bibliotekę DLL, która potrzebuje dostępu do danych przechowywanych w kontenerach STL w aplikacji hosta. Ponieważ C++ nie ... ) / GetNext ()? Być może będę musiał to zrobić dla wielu list, więc byłoby miło mieć rozwiązanie tak proste jak vector ' S.