問題タブ [bounds-checker]
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++ - BoundsChecker や Purify などの 64 ビット ツール
何年もの間、私は 2 つの優れたツールBoundsCheckerとPurifyを使用してきましたが、これらのアプリケーションの開発者は私をがっかりさせました。私たちは両方の会社に企業アカウントを持っていますが、どちらも 64 ビット アプリケーションをサポートするバージョンを作成するつもりはないと言っています。
64 ビットのネイティブ C++/MFC アプリケーションをサポートするオープン ソースまたは商用の代替製品を推奨できる人はいますか?
winapi - DrawFrameControl での GDI リソース リーク
DrawFrameControl() は Font オブジェクトと Brush オブジェクトを作成し、それらを dc に選択し、削除しないようです。(BoundsChecker メッセージによる)。誰かがそのようなことに直面しましたか?
debugging - Windowsの優れたメモリプロファイリング、リーク、エラー検出
私は現在、Windows用の優れたメモリ/リーク検出ツールを探しています。数年前、私はNumegaのBoundscheckerを使用しました。これは非常に優れていました。現在、コンピュウェアに販売されているようで、他の会社に再販売されたようです。
現在のバージョンのデモを評価しようとすることは、これまでのところ非常に苛立たしいことであり、最高の「エンタープライズ」の伝統です。
(a)彼らのウェブサイトに宣伝されている価格はありません(警告の大きな赤い点滅ライト);
(b)従業員数およびその他の個人情報を尋ねる連絡フォーム。
(c)評価と価格を尋ねる私の電子メールへの応答がありません。
私は、BoundsCheckerが現在「それらの」製品の1つであると結論付けなければなりませんでした。ええと、あなたが無邪気に電話し、明日、黒いスーツを着た3人の男性があなたの建物に現れ、「パートナーシップ」についてあなたに話したいと思っています。あなたを充電することで離れて。
それで、さておき、誰かが優れたメモリチェック/リーク検出ツール、それがいくらかかるか、そしてどこで買うべきかについての提案を推薦できますか?
delphi - Delphiで「範囲外のリストインデックス」エラーの場所を見つけるにはどうすればよいですか
Delphi 2009 では、私のプログラムは「List index out of bounds」エラーを生成するようになりました。ポップアップ ボックスを生成します。
(出典: beholdgenealogy.com )
すべてのランタイム エラー チェックがオンになっている「デバッグ」ビルド構成を使用しています。ただし、これはエラーが発生する前にキャプチャしません。
ブレークポイントを設定して試行錯誤することなく、プログラムでこのエラーの原因を特定する簡単な方法はありますか?
memory - 境界チェックのパターンが固定されたメモリ領域の技術名?
デバッグ目的で割り当てられ、特別なパターンで埋められた余分なメモリの領域に技術的な名前があるかどうかを知りたいので、実行時に上書きされていないかどうかを確認できます(したがって、バッファオーバーフローの可能性を検出できます) ..。。
仲間はそれらを「カナリア」(スペイン語でカナリア)と呼んでいました。これは、鉱山で爆発ガスを検出するために使用されたカナリア鳥に類似していると思いますが、英語で同じ名前が使用されているかどうかはわかりません。
c++ - std::vector の operator[] をコンパイルして、RELEASE ではなく DEBUG で境界チェックを行う方法
Visual Studio 2008 を使用しています。
std::vector には at() 関数による境界チェックがあり、演算子 [] を誤って (範囲外で) 使用して何かにアクセスしようとすると、未定義の動作になることを認識しています。
境界チェックを使用してプログラムをコンパイルできるかどうか興味があります。このように operator[] は at() 関数を使用し、何かが範囲外になるたびに std::out_of_range をスローします。
release モードは operator[] の境界チェックなしでコンパイルされるため、パフォーマンスは低下しません。
Borland C++ を使用して作成されたアプリを Visual Studio に移行しているため、これについて考え始めました。これはコードのごく一部です (i=0、j=1):
ベクトル 'v' のサイズは [0][1] です (したがって、ベクトルの要素 0 には要素が 1 つしかありません)。これは未定義の動作ですが、Borland はここで 0 を返し、VS はクラッシュしています。私は 0 を返すよりもクラッシュの方が好きなので、std::out_of_range 例外がスローされることでより多くの「クラッシュ」を取得できれば、移行はより速く完了します (したがって、Borland が隠していたより多くのバグが明らかになります)。
visual-c++ - Visual C++ デバッガーと BoundsChecker の謎
次の Visual C++ デバッガー セッションのスクリーンショットを見てください。
(ソース: lviv.ua )
実行ポイントは仮想関数内になりました。「mDb」は、そのクラスのメンバーであるオブジェクトへの参照です。「mDb」のタイプはCDbBackend&です。スレッドは 1 つだけです。赤い四角形の値は等しいはずですが、そうではありません。これはどのように可能ですか?
デバッグ中のコードは、BoundsChecker (メモリ デバッガーおよびプロファイラー) でインストルメント化されています。この不一致は、後でクラッシュにつながります。インストルメント化されていないコードは、これらの影響のいずれにもつながりません。BoundsChecker のせいにするのは時期尚早だと思います。BoundsChecker が明らかにした私のプログラムの隠れたバグである可能性は十分にあります。そのため、状況を理解したいと強く思っています。
"b = &mDb" ステートメント用に生成されるアセンブリは、関連する場合は次のとおりです。ウォッチとレジスタが表示されたこのアセンブリのステップ実行は、ここでキャプチャされます(500kb の avi ファイル)。
c++ - BoundsChecker が誤ったメモリ リーク メッセージを表示する
Visual C++ で BoundsChecker9.1 を使用しています。クラスがあります
プログラムを実行すると、BoundsChecker ツールは Sxpush_back(AnotherClass()) などのすべての push_back() 呼び出しをメモリ リークとして報告します。Sample クラスがスコープ外になると、ベクトル x のすべての要素が常に割り当て解除されるわけではありませんか? もしそうなら、BoundsChecker がそれらをメモリ リークとして表示している理由について何か考えはありますか? そして、「AnotherClass」にもメモリリークがないことを確認しました!!