問題タブ [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.

0 投票する
3 に答える
1492 参照

assembly - アセンブラの機能

私はスタックの目的について少し哲学を持っており、コーディングを行った後、それがどのような強みであるかを理解しました。私の胃の中にある唯一のものは、それが機能とどのように機能するかということです。ユニバーサルレジスタを使用して2つの数値を加算する簡単な関数を作成しようとしましたが、たとえばCではそうではないと思います。すべてのパラメータ、ローカル変数はどこにあり、結果はどこに保存されますか?

これをアセンブラにどのように書き直しますか?(Cのコンパイラはどのように書き直しますか?)

私はこの例がちょっとひどいことを知っています..しかし、このようにして私はすべての可能性を理解することができます

0 投票する
2 に答える
2485 参照

powershell - エラーがスローされた後のpowershellキャプチャコールスタック

私はこのようなことをしたい...

理想的には、関数や行番号などへの引数をキャプチャしたいと思います (get-pscallstack で見られるように)
編集: 明確にするために、.NET ではなく、powershell スタック トレースが必要
です。
デイブ

0 投票する
2 に答える
998 参照

debugging - Octave のデバッグ モードでスタック トレースを表示するにはどうすればよいですか

Octave の一部の内部ライブラリ関数でエラーが発生しました。呼び出し元の関数をデバッグしたいのですが、やり方がわかりません。

  • スタック トレースを表示するにはどうすればよいですか?

  • フレーム間を移動するにはどうすればよいですか?

0 投票する
2 に答える
1151 参照

c++ - 関数の静的および動的な親

Thinking in C++ (vol. 2) を読んでいます。

関数が呼び出されるたびに、その関数に関する情報がアクティベーション レコード インスタンス (ARI) (スタック フレームとも呼ばれる) のランタイム スタックにプッシュされます。典型的なスタック フレームには、(1) 呼び出し元の関数のアドレス (実行がそこに戻ることができるようにするため)、(2) 関数の静的な親の ARI へのポインター (呼び出された関数をレキシカルに含むスコープ、したがってグローバルな変数) が含まれます。関数にアクセスできます)、(3) それを呼び出した関数 (動的な親) へのポインター。動的な親リンクを繰り返したどることによって論理的に生成されるパスは、動的チェーン、または呼び出しチェーンです。

関数の静的および動的な親として作成者が何を意味するのか理解できません。また、項目 1、2、または 3 を区別することもできません。それらはすべて同じように見えます。誰か私にこの一節を説明してくれませんか?

0 投票する
5 に答える
52805 参照

assembly - Gnu Assembler (GAS) の CFI ディレクティブは何に使用されますか?

.cfi_startprocすべての行の後に.CFI ディレクティブがあるようで、これらにはさまざまな種類があり.cfi_endprocます 。

これらの目的がわかりませんでした。

0 投票する
4 に答える
355 参照

c++ - ブーストユニットテストのメモリの再利用により、合格しないはずのテストが発生します

ブーストユニットテストライブラリを既存の大規模なコードベースに使用し始めましたが、スタック上のメモリの再利用が原因と思われる、ユニットテストが誤って合格するという問題が発生しました。

これが私の状況です:

最初のテストは正しく合格し、すべての変数が初期化されました。
2番目の単体テストのコンストラクターはEntityTypeまたはDataPositionを正しく設定しませんでしたが、単体テストは合格しました。次のように、2番目のテストでいくつかの変数をスタックに配置することで、失敗させることができました。

intが1つしかない場合は、EntityType CHECK_EQUALのみが失敗しますが、2つある場合は、EntityTypeとDataPosの両方が失敗するため、これが同じスタックメモリなどで作成されている変数の問題であることは明らかです。

各単体テストの間にメモリをクリアする良い方法はありますか、それともライブラリを誤って使用したり、悪いテストを書き込んだりする可能性がありますか?どんな助けでもいただければ幸いです。

更新:
Select baseは、bool、int、およびCStringメンバー変数のみを持つ単純なクラスです。これは、より複雑な実装の状態を処理するための基本クラスであるため、グローバル変数またはグローバル状態にアクセスしません。

私が必要としているのは、呼び出し間のメモリを0xdeadf00dのようなものに設定する方法です。これにより、メンバー変数が初期化されていない場合、単体テストでそれをキャッチできます。それ以外の場合は、最初の単体テストのみが効果を発揮します。

Boost 1.41にアップデートしましたが、問題は解決しませんでした。一部のテストケースでは問題に多少影響しましたが、すべてのテストが適切に失敗するほどではありませんでした。

0 投票する
3 に答える
13201 参照

assembly - なぜpopはアセンブリでパラメータを取るのですか?

スタックの操作にはパラメータが必要%ebpないため、不要のようです。pop

なぜそれが理にかなっているのですか?

0 投票する
2 に答える
2325 参照

ruby - 呼び出しメソッドの文字列名を返す方法は?

現在、私のコードは次のように機能します。

method_b が「method_b」を出力する代わりに、呼び出し元のメソッドの名前「method_a」を出力するにはどうすればよいですか?

0 投票する
2 に答える
1256 参照

linux - How can we get Function name from Spack Pointer(reg/SP) on Linux?

i am using ptrace to get information related to Callstack on Linux. i can retrieve Spack Pointer to my stack using register returned by ptarces. but using this stack pointer how can i retrieve information related to Function name and signature of current call stack?

are there any Linux APIs to traverse this callstack?

please help.. i am looking for it from last few days...

thanks in advance Sandeep

0 投票する
3 に答える
5508 参照

assembly - アセンブリ内のスタック/ベースポインタ

私はこのトピックがここやインターネット上の他の場所で取り上げられていることを知っていますが、うまくいけば、私が集会に頭を悩ませようとしているので、質問は単純なものです...

したがって、正しく理解していれば、ebp(ベースポインター)はスタックの一番上を指し、esp(スタックポインター)は一番下を指します-スタックが下に成長するためです。したがって、espは「現在の場所」を指します。したがって、関数呼び出しでは、スタックにebpを保存したら、関数用の新しいスタックフレームを挿入します。したがって、下の画像の場合、N-3から開始した場合は、関数呼び出しを使用してN-2に移動します。しかし、あなたがN-2にいるとき、あなたのebp==25とesp==24ですか(少なくとも最初は、データがスタックに配置される前に)?

これは正しいですか、それとも私はここで接線を外れていますか?

ありがとう!

http://upload.wikimedia.org/wikipedia/en/a/a7/ProgramCallStack2.png
(出典:wikimedia.org