问题标签 [darwin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - STLport 崩溃(竞争条件,仅限达尔文?)
当我在 Darwin 上运行 STLport 时,我遇到了一个奇怪的崩溃。(除了在 Mac 上没见过,但在 i686 和 PowerPC 上都崩溃了。)这就是它在 gdb 中的样子:
可能是 STLport 中的一些设置,我注意到 Mac.h 和 MacOSX.h 在功能上似乎远远落后。我也知道它一定是某种类型的竞争条件,因为它不会仅仅通过调用这个方法(隐式调用)而发生。崩溃主要发生在我推送系统时,同时运行 10 个执行大量字符串处理的线程。
我提出的其他理论与编译器标志(配置脚本)和 g++ 4.2 错误有关(似乎 Mac 上还没有 4.4.3 并支持 Objective-C,我需要与之链接)。
帮助!!!:)
编辑:我运行单元测试,它做各种各样的事情。当我启动 10 个推送系统的线程时会出现这个问题;它总是归结为 std::string::append 最终归结为 _M_allocate。由于我什至无法得到导致问题的代码的下降转储,我认为我做错了。可能是因为它试图在指令指针 0x000...000 处执行吗?dynlib 是否在 Windows 中构建为带有跳转表的 DLL?会不会是这样的跳转表由于某种原因被覆盖了?这可能可以解释这种行为。(代码很大,如果我用完了其他想法,我会在这里发布一个最小崩溃示例。)
xcode - 链接函数时,OSX/Darwin 未解析符号
我正在将一个大型(~1M LOC)项目从 Window/Visual Studio 环境移植到其他平台,其中第一个平台恰好是 Mac OS X。
最初该项目被配置为 Visual Studio 解决方案和项目,但现在我正在使用(优秀的)Premake(http://industriousone.com/premake)为多个平台(VS、XCode、GMake)生成项目文件。
我配置、移植和构建了前几个项目,没有任何重大问题,但是在移植了数学库后,我遇到了这个我无法解决的奇怪链接错误:从 math.h 使用的任何函数都将无法链接(导致未解析的符号)。
作为参考,我使用 Premake v4.2.1 为 XCode v3.2.1 生成项目,该项目使用 gcc v4.2 构建 x86_64 架构。(所有这些都在 64 位 Snow Leopard 上)我试图通过添加 -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6 来说服 gcc 链接和构建针对“已知”SDK 的所有内容到构建命令行。
现在在正常情况下,添加 -lm 应该可以解决这个问题,但是在 Darwin 中,这些数学库包含在 libSystem 中,据我所知,它被 gcc/ld 隐式链接。
我尝试从 XCode 中创建一个虚拟项目,它只是运行:
正如预期的那样,这构建得很好。但是,如果我在 Premake 生成的项目中的代码中放入相同的内容,所有这些数学函数最终都无法解析。
现在将“本机”XCode 项目的链接命令与我生成的 XCode 项目进行比较,它们看起来非常相似(除了我生成的项目也链接了其他库)。
“原生”项目:
生成的项目:
任何有关如何进行的帮助或提示将不胜感激。是否有任何 gcc 标志或其他工具可以帮助我解决这个问题?
c++ - operator new 是否在 THREAD 堆上分配?
我的问题似乎是这样的:一个线程(后来死掉)分配的堆数据似乎也死了。如此:
- 线程 X:开始
- 线程 Y:开始
- 线程 X:ptr = new some bytes
- 线程 X:死亡
- 线程 Y:尝试使用 ptr - 并崩溃!
到目前为止,我只在 Darwin(Mac OS 10.5 和 10.6)上看到过这个问题,但除了 Windows 和 Linux(Ubuntu)之外,还没有尝试过更多其他平台,它可以按预期工作。我遇到这个问题已经有一段时间了,因此非常感谢任何有关此问题的专业知识或更多信息!
编辑:问题是由不相关的崩溃错误引起的。
open-source - 在 Darwin 源代码中寻找 Mach-O 加载器源代码
据我了解,Mach-O 应该是 Darwin 开源软件包的一部分。有人可以帮我找到装载机吗?我不知道它在哪里以及从哪里下载该代码。
任何帮助将不胜感激!
macos - 在 64 位 OS X 应用程序中处理 mach 异常
我已经能够注册我自己的 mach 端口以在我的应用程序中捕获 mach 异常,并且当我以 32 位为目标时它工作得很好。但是,当我以 64 位为目标时,我的异常处理程序catch_exception_raise()
被调用,但传递给处理程序的异常代码数组是 32 位宽的。这在 32 位构建中是预期的,但不是在 64 位中。
在我捕获EXC_BAD_ACCESS
的第一个代码是错误号的情况下,第二个代码应该是故障的地址。由于第二个代码是 32 位宽,因此 64 位故障地址的高 32 位被截断。
<mach/exception_types.h>
我在I can pass in task_set_exception_ports()
called中发现了一个标志,通过MACH_EXCEPTION_CODES
查看 Darwin 源代码,该标志似乎可以控制传递给处理程序的代码的大小。看起来它应该与传递给task_set_exception_ports()
.
但是,当我这样做并触发异常时,我的 mach 端口会收到通知,我会调用exc_server()
但我的处理程序永远不会被调用,并且当回复消息被发送回内核时,我会得到默认的异常行为。
我的目标是 10.6 SDK。
我真的希望苹果能更好地记录这些东西。有人有想法么?
testing - 使用 *Darwin 作为 Mac OSX 应用程序的测试平台
由于 Mac 虚拟化在除 Mac 计算机之外的任何设备上在技术上都是非法的,是否可以使用 Darwin 发行版之一作为平台来测试适用于 Mac OSX 的应用程序?
从我读过的一点点来看,*Darwin 和 MacOSX 的关系似乎非常紧密,但我在互联网上并没有真正找到任何关于使用 Darwin 进行 MacOSX 开发的信息——所以我有点怀疑它是否是甚至可能。
有人试过吗?
iphone - 在 64 位操作系统中构建 odcctools
odcctools 软件包为 Darwin OS 提供了 binutils。-- 例如,这允许您交叉编译到 Darwin 和 OSX。但是,odcctools 似乎无法在 64 位操作系统上正确构建:
或者,如果你将 CFLAGS 设置为-m32
,你会得到:
你如何在 64 位操作系统上构建它?
function - 在 Mac OS 上以原子方式获得价值
我需要一些函数来原子地获取 int 值。称为 OSAtomicGet() 的东西。g_atomic_int_get() 的模拟。
macos - 查找包含符号的 OS X kext 库
使用 Snow Leopard 10.6.4,我得到一个未解析的符号:
我无法使用 kextfind 找到这个符号,但是这个符号是在内核中导出的:
如何使用OSBundleLibraries
dict 找到 kext 库以与此符号链接?
macos - Mac / iPhone 的 objcopy 等价物?
我想重命名目标文件(.o)中的符号,它与 Mac 上的 binutilsobjcopy --redefine-syms
工具等效。
我发现没有arm-apple-darwin10-objcopy
。我尝试了 MacPorts 的arm-elf-binutils
端口,也尝试了一些尝试otool
,segedit
无论成功与否。
请问有什么想法吗?