一つ報告しました。VLCエラーgdb
出力が含まれますbt full
が、プロジェクト担当者の応答は次のとおりです。「不完全」トラッキング。開発者が使用できるトレースを生成するにはどうすればよいですか?そのドキュメントとバグフィードバックには、これを行う方法は記載されていません。
ベストアンサー1
あなたが提供したリンクによってあなたの質問の中で唯一理解されているのは、シンボルスタック追跡を必要とすることです。しかし説明にはあまり役に立たない。それをする方法。
(例えば、知らない人や覚えていない人のために、デバッグ情報でバイナリをコンパイルするだけでシンボリックスタックトレースを取得できます)
このトピックについてより役に立ち、リンクされたものよりも優れた別のVLCページを見つけました。
VLCメディアプレーヤーをコンパイルするときは、./configureスクリプトで--enable-debugを使用してデバッグバイナリをコンパイルする
必要があります。
議論している場合は、前述のリンクに従ってここでcanをMustに置き換えます。
それは何のために使用されますか?
もちろん、デバッグモードでコンパイルされたバイナリは、リリースバージョンのように動作するか動作する必要があります。違いは次のとおりです。
- 開発の目的で、開発者は疑わしい状態に達するとVLCがクラッシュすることがありますが、リリースビルドは同じ疑わしい状態にありません。
バイナリトレースバックはここに含まれるシンボルのため、このモードでは意味があります。
有効にする方法
上記のように、デフォルトでCFLAGS = "-g" CXXFLAGS = "-g" --enable-debugパラメータを./configureステップに追加するだけです。
コードを段階的に実行するには、--enable-releaseを使用する代わりに、CFLAGS = "-g -Og" CXXFLAGS = "-g -Og"を実行して--disable-optimizationsを追加する方が良い方法です。 -Ogを-O0に置き換えると、コンパイラが変数を最適化できなくなります。
したがって、デバッグバイナリをコンパイルした後、「gdb bt full」でクラッシュした原因を説明するバグレポートを開発者に送信できるようになりました。
また見なさい:VLC - エラー報告