草庐IT

itanium-abi

全部标签

c++ - 通过 Itanium ABI 分配的异常内存是否有任何对齐保证?

ItaniumABI指出异常的内存是通过调用__cxa_allocate_exception(size)获得的。返回内存的对齐保证是什么? 最佳答案 Section1.2inchapter4说:Theunwindinterfaceusesapointertoanexceptionheaderobjectasitsrepresentationofanexceptionbeingthrown.Ingeneral,thefullrepresentationofanexceptionobjectislanguage-andimplement

c++ - boost 是否使用 C++11 "inline namespaces"来避免运行时出现 ABI 不兼容错误?

C++11具有称为“内联命名空间”的功能,它允许作者在链接时强制执行ABI兼容性,而无需篡改API。例如,来自@HowardHinnant的这些有用的答案解释了libc++如何使用内联命名空间:Usinglibstdc++compiledlibrarieswithclang++-stdlib=libc++Whycan'tclangwithlibc++inc++0xmodelinkthisboost::program_optionsexample?我的问题是:boost是否利用了这个C++11特性?看起来一些boost开发者至少是thinking最终一次使用它。但是那个线程很旧。它曾经发

c++ - 向函数添加具有默认值的参数是否会破坏 ABI?

标题说明了一切。我将向具有默认值的类的成员函数添加一个参数。该参数属于非平凡类型。这会破坏ABI吗?假设我的新库版本将是M.m.0,它应该可以作为所有使用M.m-1.x的链接应用程序的直接替代品。示例代码://Thesearesomeclasses:baseandchild:publicbase/*Version1.2.3*/classfoo(){public:voiddo_that_stuff(conststd::stringa);}/*Version1.3.0*/classfoo(){public:voiddo_that_stuff(conststd::stringa,constb

c++ - 将枚举器添加到枚举中会破坏 ABI 吗?

特别是,我在库界面中得到了以下代码:typedefenum{state1,state2,state3,state4,state5,state_error=-1,}State;我严格禁止破坏ABI。但是,我想添加state6和state7。它会破坏ABI吗?我找到了here一些提示,但我有点怀疑这是不是我的情况?Youcan...appendnewenumeratorstoanexistingenum.Exeption:ifthatleadstothecompilerchoosingalargerunderlyingtypefortheenum,thatmakesthechangebin

c++ - 在独立类中重新排序公共(public)非虚拟方法是否会破坏 ABI?

更改独立类中公共(public)非虚拟非内联重载方法的顺序是否会破坏ABI?之前:classMyFinalClass{public://...voiddoSomething(charc,inti,intn);voiddoSomething(charc,inti);//...};之后:classMyFinalClass{public://...voiddoSomething(charc,inti);voiddoSomething(charc,inti,intn);//...};谢谢! 最佳答案 函数通过它们的名称和签名链接,而不是通过

c++ - 什么变化导致 C++ 中的 ABI 中断?

当C++标准化委员会调查STL的修改时,非常注意不要引入ABI破坏性更改。是什么导致了ABI中断,什么没有在C++中引入ABI中断?((欢迎链接到专注于此的类(class)或文档) 最佳答案 虽然没有通用的ABI,但标准委员会确实听取了供应商对一些供应商报告的ABI损坏提出的担忧。这些担忧是否会阻止做出改变取决于改变的内容。对于标准库,导致潜在ABI破坏的主要问题是那些改变类或类模板的布局或改变典型内联函数的行为的问题。大多数情况下,问题可以通过稍微不同的表述或稍微移动功能来解决。对于C++11,我记得关于ABI的相关讨论std::

windows - Visual Studio 参数对齐限制和 Windows x64 ABI

对于WIN32上的VisualC++,具有4个或更多SSE参数的函数存在一个长期存在的问题,例如__m128ifoo4(__m128im0,__m128im1,__m128im2,__m128im3){}产生一个错误:align.c(8):errorC2719:'m3':formalparameterwith__declspec(align('16'))won'tbealigned使问题更加复杂的是,即使函数是__inline,VisualC++仍然不必要地施加了ABI限制。我想知道这是否仍然是64位Windows上的问题?ABI限制是否仍然适用于x64?(我无法访问64位Window

ios - Swift 4.1 ABI 向前兼容性 : implement function that Apple will implement in the future

我不在乎明年是否必须重新编译我的应用程序,因为Apple再次更改了Swift语言。然而,我真正关心的是,如果我的应用程序已经在应用程序商店中,在加载期间停止工作并在应用程序启动时崩溃,因为用户更新到下一个iOS版本。我来自ObjectiveC背景,但我不了解二进制级别的Swift应用程序中发生了什么。在我正在编写的一个应用程序中,我添加了一个允许我添加两个CGPoint值的函数。这样做是有道理的,例如当你使用pangesturerecognizers时.代码是:func+(_a:CGPoint,_b:CGPoint)->CGPoint{returnCGPoint(x:a.x+b.x,y

ios - SWIFT ABI 在哪里出现?

标题可能不足以概述问题上下文。所以这里是描述:SWIFT编译过程Swift编译器经过以下步骤来编译Swift文件根据Apple,IRgeneration(implementedinlib/IRGen)lowersSILtoLLVMIR,atwhichpointLLVMcancontinuetooptimizeitandgeneratemachinecode.QueryNumber1-我们都知道编译器将我们的源代码转换为汇编语言和汇编程序(主要嵌入在操作系统中,至少Swift编译器没有其中的汇编程序)将其转换为机器代码。因此,按照上面引用的语句,编译器中的LLVM将LLVMIR更改为机器

ios - 我如何调试 : libc++abi. dylib : terminating with uncaught exception of type NSException?

很抱歉问这个菜鸟问题,我知道这个问题之前已经被问过数千次了,我知道是因为我之前遇到过这个问题数千次。但这次谷歌没有帮助。错误/终端打印:libc++abi.dylib:terminatingwithuncaughtexceptionoftypeNSException我通常知道是什么类型的情况导致了这种情况,因为我过去遇到过这个问题并且修复起来非常简单,通常是函数命名错误或某些UI元素与我的代码之间的链接断开,但现在我有不知道是什么原因造成的。我已经尝试过的:我在起始ViewController上添加了大量断点,它通过了所有@IBOutlets而没有抛出任何问题。我在AppDelegat