質問

私たちが開発した製品の一つは、C ++やシンビアンで行わNokiaの携帯電話の電話アプリです、私たちは「ランダム」入門USER 44パニックでしばらく前にクラッシュします。

私はこのバグのルートを見つけるのに役立つツールや勧告を探していますので、

私は、Symbian、環境へのかなり新しいです。

私が得ることができる「スタックトレース」の同等はありますか? そこに私にいくつかの洞察力を与える可能性があり、一般的なパニックキャッチコードはありますか?

役に立ちましたか?

解決

からのhttp:// WWW。 symbian.com/developer/techlib/v9.1docs/doc_source/reference/N10352/UserPanics.htmlするます:

This panic is raised by the Free() and FreeZ() member functions of an RHeap.
It is caused when the cell being freed overlaps the next cell on the free
list (i.e. the first cell on the free list with an address higher than the
one being freed).

これが意味し、あなたの呼び出し削除/無効なポインタで(今度は無料()/ FREEZ()を呼び出します)[]削除してください。カーバイドの下でデバッグのときdebugerはパニックを引き起こし、あなたは無効な削除を見ることができるはずの行に中断する必要があります。

他のヒント

Kasprzolが指摘したように、デバッガをステップ実行すると、パニックを引き起こし線やルーチンのセットに絞り込むようにする必要があります。また、あなたがその所有権を明示的に削除される前に、すでにそのオブジェクトを削除した(おそらく明確にこの事実を文書化していないメソッドの呼び出しを介して)別のヒープオブジェクトに転送されたヒープオブジェクトを削除しようとしていないことを確実にすることをお勧めします。私は前に、後者に刺されてきました。

私の漠然とした理解がUSER 44とUSER 45のパニック両方がヒープの問題としなければならないということです。最も一般的な問題は、二重欠失だろう。あなたはそれらを削除した後、あなたのポインタをNULL'ingていますか?あなたはそれらを削除する前にNULLに対してチェックされていますか?どこでダブル何かを削除することができるか。

それは完全な機能を、自由に利用可能だとして

デバッグのための最も簡単な選択は、超硬2.0を使用することが考えられます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top