問題タブ [ltrace]
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 - mprotect 関数が 5 つの引数で呼び出されるのはなぜですか?
mprotectの Linux man ページによると、関数には 3 つの引数があります。
しかし、私が分析しているプログラムで ltrace を実行しているときに、mprotect が次のように呼び出されていることがわかります。
4番目と5番目の引数は何ですか?
ltrace バージョン 0.5 を使用しています。およびカーネル 2.6.24-24-generic
linux - What interprocess locking calls should I monitor?
I'm monitoring a process with strace
/ltrace
in the hope to find and intercept a call that checks, and potentially activates some kind of globally shared lock.
While I've dealt with and read about several forms of interprocess locking on Linux before, I'm drawing a blank on what to calls to look for.
Currently my only suspect is futex()
which comes up very early on in the process' execution.
Update0
There is some confusion about what I'm after. I'm monitoring an existing process for calls to persistent interprocess memory or equivalent. I'd like to know what system and library calls to look for. I have no intention call these myself, so naturally futex()
will come up, I'm sure many libraries will implement their locking calls in terms of this, etc.
Update1
I'd like a list of function names or a link to documentation, that I should monitor at the ltrace
and strace
levels (and specifying which). Any other good advice about how to track and locate the global lock in mind would be great.
strace - strace/ltrace が一貫性のない情報を出力する
strace pwd
:
ltrace pwd
:
第 1 パラメータがNULL
にあるのはなぜltrace
ですか?
strace/ltrace はどちらもシステムコールを使用してptrace
いるようですが、なぜ異なる情報を取得するのでしょうか?
c++ - 単純なC++プログラムの開始時の一連のstrcmp()呼び出し
私は単純なC++プログラムを持っています:
ARMプラットフォーム用のアプリケーションをコンパイルするために使用するクロスコンパイルプラットフォームである「scratchbox」で遊んでいました。NokiaN900電話で実行します。
いくつかのパフォーマンスの問題を調査しているときに、最初にstrcmp()が何度か呼び出されていることに気づきました。「ltrace」を使用してライブラリ呼び出しをトレースし、ターゲット(携帯電話)で実行すると、strcmp()への一連の呼び出しが表示され、興味をそそられます。これらの呼び出しの目的は何ですか?
c - ltraceおよびstraceツールの行番号情報
ライブラリ呼び出し/システム呼び出し情報とともに、行番号とファイル名(ltrace / straceで実行されているプログラムの場合)を表示できる可能性はありますか?
例えば:
ltraceまたはその他のツール: malloc(20) :: code.c::21
ltrace / straceのすべてのオプションを試しましたが、この情報を取得する方法がわかりません。
ltrace / straceで不可能な場合、GNU / Linux用の並列ツールオプションはありますか?
android - ltraceを使用したAndroidアプリケーションのプロファイリング
Androidアプリケーションのダイナミックライブラリ呼び出しをプロファイリングする必要があり、この目的のために「ltrace」ツールを使用してプロファイリングすることにしました。「ltrace」ツールをAndroidパッケージに組み合わせて、正常にコンパイルしました。通常のLinuxコンソールアプリケーションと同じように、シェルプログラムで正常に動作します。
ただし、「Zygote」プロセスからフォークされたAndroidアプリケーションを適切にプロファイリングできません。ltraceを"Zygote"プロセスにアタッチして、その子プロセスを追跡しようとしましたが、SIGCHLDおよびSIGSTOPシグナルしか受信せず、異常終了し、次のエラーが表示されました。
0xffff0508での予期しない命令0xffffffff
誰かがAndroidシステムでこの種のプロファイリングを試したことがあるかどうか疑問に思っています。短いコメントは私にとって非常に役立ちます。
前もって感謝します。
debugging - ltrace は 2 つの呼び出しのみを出力します
ワープロでltraceを実行してサンプル ファイルを開きましたが、驚くべきことに 2 回しか呼び出しがありませんでした。
ltrace はすべてのライブラリ呼び出しを出力すべきではありませんか?
iphone - iphone: strace、dtruss、dtrace、または同等のもの?
strace
、dtruss
、またはdtrace
iPhone用のようなものがあるかどうか誰か知っていますか?
c++ - C++ ヒープに割り当てられた仮想メソッド名を ltrace から取得するにはどうすればよいですか?
私はこれに約1日苦労しています。
簡単な共有ライブラリとテスト プログラムを作成できました。これを ltrace 制御下で実行すると、静的メソッド、仮想メソッド、および純粋仮想メソッドのメソッド名を期待どおりに取得できます。
cmake を使用して共有ライブラリを構築します。純粋な仮想親クラスがあり、いくつかのメソッドが例外をスローします。
テスト プログラムで ltrace を実行すると、静的メソッドのメソッド名しか取得できません。
代わりに、次のような行がたくさん表示されます。
make VERBOSE=1 ショー:
どこを見ればいいですか?ありがとう!
よし、契約だ。オブジェクトがヒープに割り当てられている場合、仮想/純粋仮想メソッドが表示されません。スタック上にある場合は、次のようにします。
どんな手掛かり?
gdb - Linuxダイナミックライブラリを監視する
Cで記述されたLinuxダイナミックライブラリを監視(デバッグ)し
たいと思います。いつ、どのパラメータがライブラリに渡されるかを確認したいと思います。
'X'を監視するライブラリは、別のダイナミックライブラリ'Y'によって呼び出されます。
'Xと'Y'の両方が実行可能ファイル'A'の/proc/ pid/mapsに表示されます。
ltraceを使用すると、実行可能ファイルでlibXまたはYが表示されませんでした。
実行可能ファイルは複数のスレッドを使用しています。
また、execでlddコマンドを使用する場合、libs XまたはYについては何も言及されていません
。lddYは、YにXが必要であることを示しています。
すべてのライブラリでlddを使用すると、プロジェクトのexecはYを必要とする人について言及しません。
それでもYはexecの/ proc / pid/mapsにロードされているように見えます。
X libをデバッグするためにどのような手順を実行できるかわかりませんが、アドバイスをいただければ幸いです。