我在 Mac OS X 上使用 FPC 和 Indy 10 编写的 32 位服务器应用程序在 OS X Lion 上的 pthread_specific() 中遇到了崩溃。我发现很难追查原因。发生崩溃是因为 gs:[tlsindex] 不可读,但我不知道为什么会发生这种情况。tlsindex 是正确的,因此描述符表一定已经损坏。
有没有办法在 OS X 上使用 gdb / Xcode 4 打印描述符表?我在想,如果我知道内存中的地址,我可以在它上面设置一个数据断点,并希望在破坏描述符表的代码处中断。不幸的是,我找不到有关如何在 OS X (i386) 上实际实现 TLS 的任何信息。
或者也许有人对如何解决这个问题有一个绝妙的主意?