問題タブ [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のクラッシュ(競合状態、ダーウィンのみ?)
ダーウィンでSTLportを実行すると、奇妙なクラッシュが発生します。(Mac以外では見たことがありませんが、i686とPowerPCの両方でまったく同じことがクラッシュします。)gdbでは次のようになります。
それはSTLportの設定かもしれませんが、Mac.hとMacOSX.hは機能がはるかに遅れているように見えることに気づきました。また、このメソッドを呼び出すだけでは発生しないため、何らかの競合状態である必要があることも知っています(暗黙的に呼び出されます)。クラッシュは主にシステムをプッシュしたときに発生し、多くの文字列処理を行う10個のスレッドを同時に実行します。
私が思いついた他の理論は、コンパイラフラグ(スクリプトの構成)とg ++ 4.2のバグに関係しています(4.4.3はまだMacになく、Objective-Cをサポートしているようです。リンクする必要があります)。
ヘルプ!!!:)
編集:私はあらゆる種類のことを行う単体テストを実行します。この問題は、システムをプッシュする10個のスレッドを開始したときに発生します。そしてそれは常にstd::string :: appendになり、最終的には_M_allocateになります。問題の原因となっているコードの降下ダンプを取得することすらできないので、私は何か悪いことをしていると思います。命令ポインタ0x000...000で実行しようとしているので、そうでしょうか?dynlibsはジャンプテーブルを備えた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 から使用された関数はリンクに失敗します。 (未解決のシンボルの原因)。
参考までに、x86_64 アーキテクチャ用の gcc v4.2 を使用してビルドしている XCode v3.2.1 のプロジェクトを生成するために Premake v4.2.1 を使用しています。(これはすべて 64 ビットの Snow Leopard で) -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.6 を追加して、「既知の」SDK に対してすべてをリンクおよびビルドするように gcc を説得しようとしました。ビルド コマンド ラインに。
通常の状況では、-lm を追加することでこれを処理できますが、Darwin では、これらの数学ライブラリは libSystem に含まれており、私が知る限り、gcc/ld によって暗黙的にリンクされます。
XCode内から実行するだけのダミープロジェクトを作成しようとしました:
予想通り、これは問題なくビルドできます。しかし、Premake で生成されたプロジェクト内のコードに同じものを入れると、それらの数学関数はすべて未解決になってしまいます。
「ネイティブ」XCode プロジェクトからのリンク コマンドと、生成された XCode プロジェクトを比較すると、それらはかなり同じように見えます (生成されたプロジェクトが他のライブラリもリンクしていることを除いて)。
「ネイティブ」プロジェクト:
生成されたプロジェクト:
続行する方法についてのヘルプやヒントをいただければ幸いです。これを解決するのに役立つ gcc フラグやその他のツールはありますか?
c++ - operator new は THREAD ヒープに割り当てますか?
私の問題は次のようです: 1 つのスレッド (後で死ぬ) によって割り当てられたヒープ データも同様に死ぬようです。そのとおり:
- スレッド X: 開始
- スレッド Y: 開始
- スレッド X: ptr = 新しい数バイト
- スレッド 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 アプリケーションでのマッハ例外の処理
アプリケーションでマッハ例外をキャプチャするために、独自のマッハ ポートを登録することができました。32 ビットをターゲットにすると、うまく機能します。ただし、64 ビットをターゲットにすると、例外ハンドラーcatch_exception_raise()
が呼び出されますが、ハンドラーに渡される例外コードの配列は 32 ビット幅です。これは 32 ビット ビルドでは予想されますが、64 ビットでは予想されません。
私がキャッチした場合EXC_BAD_ACCESS
、最初のコードはエラー番号で、2 番目のコードは障害のアドレスです。2 番目のコードは 32 ビット幅であるため、64 ビットの障害アドレスの上位 32 ビットは切り捨てられます。
<mach/exception_types.h>
I can pass in task_set_exception_ports()
calledのフラグを見つけましたMACH_EXCEPTION_CODES
。Darwin ソースを見ると、ハンドラーに渡されるコードのサイズを制御しているように見えます。に渡された動作で ored されることを意図しているようtask_set_exception_ports()
です。
ただし、これを実行して例外をトリガーすると、マッハ ポートが通知され、呼び出しexc_server()
てもハンドラーが呼び出されず、応答メッセージがカーネルに送り返されると、デフォルトの例外動作が発生します。
10.6 SDK をターゲットにしています。
Appleがこのことをよりよく文書化してくれることを本当に願っています。アイデアはありますか?
testing - MacOSXアプリケーションのテストベッドとして*Darwinを使用する
Macの仮想化はMacコンピュータ以外では技術的に違法であるため、Mac OSX向けのアプリケーションをテストするためのプラットフォームとしてDarwinディストリビューションの1つを使用することは可能ですか?
私が読んだ小さなことから、* DarwinとMacOSXは非常に緊密な関係にあるようですが、MacOSX開発にDarwinを使用することについて、インターネット上で実際に情報を見つけていません。可能ですら。
誰かがそれを試しましたか?
iphone - building odcctools in a 64-bit OS
The odcctools package provides binutils for the Darwin OS. -- this allows you to cross compile to Darwin and OSX for example. However, odcctools does not seem to build properly on 64-bit OSes:
Or, if you set CFLAGS to -m32
, you get this:
How do you build this on a 64-bit OS?
function - Mac OS でアトミックに価値を得る
int 値をアトミックに取得する関数が必要です。OSAtomicGet() と呼ばれるもの。g_atomic_int_get() の類似物。
macos - シンボルを含むOSXkextライブラリを検索します
SnowLeopard10.6.4で未解決のシンボルを取得しています。
kextfindを使用してこのシンボルを見つけることができませんが、このシンボルはカーネルにエクスポートされます。
OSBundleLibraries
dictを使用してこのシンボルにリンクするkextライブラリを見つけるにはどうすればよいですか?
macos - Mac / iPhone に相当する objcopy はありますか?
objcopy --redefine-syms
オブジェクト ファイル (.o) 内のシンボルの名前を、Mac で binutils のツールに相当するものに変更したいと考えています。
いいえarm-apple-darwin10-objcopy
。私は MacPorts のarm-elf-binutils
ポートを試し、また少し遊んでみましたが、うまくotool
いきsegedit
ませんでした。
アイデアはありますか?