問題タブ [callstack]
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++ - スタック/ヒープとシンボルテーブルの概念について読むのに良いリソースは何ですか?
これらのトピックを非常に詳細に扱っているウェブサイトまたは本を提案してください。
これらの概念をよりよく理解する必要があります(C ++に関して):
- スタックとヒープ
- シンボルテーブル
- スコープルールの実装
- 関数呼び出しの実装
php - 警告をエラーとして扱う
リファクタリングしたばかりのphpアプリケーションがあります。残念ながら、次のような警告が表示されます。
警告:preg_match()は、パラメーター2が文字列であることを想定しています。オブジェクトは/home/yacoby/dev/netbeans/php/Zend/Db/Select.phpの776行目にあります。
コールスタックがないため、コードのどの部分が警告を引き起こしていて、コードがたくさんあるのかわからないため、問題を解決することは不可能です(または非常に大変な作業です)。
警告をエラーのように処理する方法(アプリケーションが停止してスタックトレースを出力する)、またはエラーを出力するときにスタックトレースを表示する方法が必要です。これを行う方法はありますか?
matlab - コンパイルされたMATLABのコールスタック
matlabでは、dbstackを使用して現時点で呼び出しスタックを取得できますが、dbstackはスタンドアロンのコンパイル済みバージョンのmatlabプログラムでは使用できません。呼び出しスタックを取得する代替手段、または少なくとも現在の関数を呼び出す関数はありますか?誰から呼び出されたかを知る必要のあるファシリティ関数を書きたいのですが、完全な呼び出しスタックが望ましいでしょう。
objective-c - Xcode - アサート時にスタック トレースを呼び出しますか?
現在、アサートの 1 つが Xcode でトリガーされると、アサート メッセージとスタックのダンプが表示されます。これは、あまり意味のない数値でいっぱいです。
コール スタックのトレースを取得するには、アプリケーションをデバッグし、アサートが発生したポイントまで実行して、再度アサートされることを期待する必要があります。100% 再現可能なバグの場合、これはそれほど大きな問題ではありませんが、それでも時間の無駄です。
アサートがヒットするたびにコール スタック トレースを取得できれば、はるかに良いでしょう。
Xcode でコール スタック トレースをダンプする assert マクロをどのように定義しますか?
x86 - インライン アセンブリから呼び出すときに C++ 関数に引数を渡す方法
したがって、C++ dll から関数を呼び出せるようにしたいと考えています。特定の理由から、C++ コードの __asm ブロックからそれらを呼び出したいと考えています。私の質問は次のとおりです。関数を呼び出す前に、関数の呼び出し規則で指定された順序で引数をスタックにプッシュする必要があることはわかっています。
私が心配しているのは、アセンブリの標準のワード サイズが 2 バイトであるのに対し、C++ の int のサイズは通常 4 バイトであり、double の場合は 8 バイトであることを覚えているように見えるという事実です。各変数の完全な値をプッシュしますか、それとも最初の数バイトだけをプッシュしますか? 上記のコードが正しくない場合、正しい方法は何でしょうか? また、呼び出している関数が double を返す場合、この値はどこに保存されますか? 32ビット(4バイト)しか保存できないため、レジスタに入れることはできないと思います。この混乱の助けがあれば大歓迎です:)
.net - WinCE 6.0 での .NET & C 間のスタック呼び出し規約
C で記述された DLL を WinCE 5.0 から ARM ターゲットの WinCE 6.0 に移植しています。この DLL は .NET ソフトウェアによって呼び出されます。WinCE5.0 では、すべて正常に動作します。WinCE6 では、次の問題があります。
私の DLL の InitInstance() では、問題なく何でも呼び出すことができます (たとえば、MessageBox())。または再帰性を使用します。
その時点を過ぎると、DLL は .NET コードによって呼び出されます。そして、それは失敗します: .NET コードによって渡される引数でさえ奇妙に思えます。MessageBox() を 1 回呼び出すことはできますが、MessageBox() を呼び出してから自分自身を呼び出す関数を呼び出すことはできません。再帰性が壊れています。
.NET コードは、私の C コードとは異なる方法でスタックを使用しているようです。
私は Windows の世界に非常に慣れておらず、.NET アプリケーションを提供してくれた会社は、なぜこのような失敗が起こるのかをまだ理解していません。
ポインタ/ヒント/アドバイスを歓迎します!
ありがとう!
delphi - 呼び出されたすべてのメソッド/プロシージャ/関数のコール スタック/スタック トレースを定期的にログに記録する方法が必要です
私は非常に大規模なアプリケーションに取り組んでおり、現在の実行ポイントまで (例外ではなく) 定期的に呼び出しスタック全体をログに記録したいと考えています。ここでのアイデアは、私が現在の状態に至るまでの正確なコード パスのマップが必要だということです。私は madExcept を使用して作業しており、jclDebug を使用してツールを使用しており、呼び出しスタックの一部を取得できますが、アプリケーションで行われたすべてのメソッド/プロシージャ/関数呼び出しをログに表示することはできないようです。
プロジェクトでスタック フレームを有効にし、デバッグ情報などを有効にしました。コール スタックに含まれていない個々のメソッドのスタック フレームをオンにしてみましたが、役に立ちませんでした。
私がやろうとしていることは可能ですか?コード パスをログに記録するために、数百万行のコード全体にログ コードを追加する必要がないようにしています。
c# - コール スタックが破損した場合、現在のスレッドだけがクラッシュするのでしょうか、それともアプリケーション全体がクラッシュするのでしょうか?
私は C# でのスレッド化に関して初心者であり、各スレッドが独自のコール スタックを持つべきかどうかわかりません。基本的に、「Run-Time Check Failure #0 - ESP の値が適切ではありませんでした」というメッセージが表示された場合、それが発生したスレッドだけがクラッシュしますか、それともプログラム全体がクラッシュしますか?
c# - 実行フレームとは何ですか?
C#では、実行フレームとは何ですか(これにも関連して、アクティベーションフレームについて聞いたことがあります)。IIRCは、メソッドパラメータが入るスロットですが、すべての詳細を記憶することはできません。
ありがとう
c++ - スコープを超えてキャッチされたスタックに例外がどのように割り当てられますか?
次のコードでは、スタックベースの変数 'ex' がスローされ、ex が宣言されたスコープ外の関数でキャッチされます。(AFAIK)スタックベースの変数は、宣言されたスコープ外では使用できないため(スタックが巻き戻されているため)、これは私には少し奇妙に思えます。
SomeKindOfException のデストラクタに print ステートメントを追加しました。ex は f() でスコープ外になると破壊されますが、g() でキャッチされ、スコープ外になると再び破壊されることが示されています。
何か助けはありますか?