質問

生産していますポータブルコード(win+macOs)をどのようにコードのrubustで衝突く...(溢れる悪initializations通常):-(

ってそれを読んでいたんGoogle Chromeを使用し工程毎にタブが何か問題が生じた後、プログラムはクラッシュcompleatelly、そのタブがあります。ると思うのは非常に綺麗なものです。

な破壊も修復もおもしろくな人には、いくつかのヒントをご提供いたしますの読書リスト、コメント、またはできるものを助けてくれます。rubust c++のコード(ポータブルでは常により良い).

同じ話題にもしていた疑問がある場合はポータブル図書館のためのプロセス(ブース?

も多数。

役に立ちましたか?

解決

開発した数多くのマルチプラットフォームのC++アプリケーションでは、約1.5Mのコードを走7ム--エクス、HP-UX PA-RISC、HP-UXに適した抜群の高性、Solaris、Linux、Windows、OS X).実際に二つの全く異なる課題。

  1. 不安定。コードは安定しています。いいじゃないか初書きぐらい。

    • 利用ユニットテストを探ロジック問題の前に殺します。
    • 利用デバッガとは何かの原因の事故の場合ではないはずである。
    • 利用力と同様の図書館です。特にポインタの種類を回避するためにお役にたちのメモリ解放されます。
  2. クロスプラットフォームの符号といいます。

    • 再びライブラリを使用する設計が可能です。特に他のGUIですね。
    • 利用基準(ANSI vs gcc/MSVC,POSIXスレッドvs Unix-特定のスレッドモデルとして、できるだけの場合でも、が必要であります。の最小化プラットフォームならではのコード化するなど全体の作業が少なApiを学ぶことができます。
    • 分離、分離、分離.を避けるインライン#ifdefsのためのプラットフォームによっています。代わりに、スティックプラットフォームならではのコードを独自のヘッダー/source/クラス利用システムの構築と#を含め、正しい知識を身につけましょう。これをコードすことはないですね。
    • 利用には、C99の整数型をできるだけではなく"長さ","int","短い"など--そうでない場合は噛みまだできてから32ビット、64ビットの一つは、long値が急激に変化するから4バイトを8バイトまでとなります。その記述のネットワーク/ディスクなどでしょうラソす。

個人的にも、今までの安定化のコードの最初(追加機能)とその後の対応のクロスプラットフォームの問題、その返却費用はかかりません。ご注意Visual Studioに優れたデバッガのコードベース上したことにより、移植されるインタラクティブなプロトタイだける理由).

他のヒント

は、Chromeの回答についての詳障害の緩和なコードについてます。とうございますクロムはやっては受入高まっている。

  1. より良い品質保証をお楽しみくだプログラマの検査をいただきました。
  2. ユニット試験
  3. 回帰テスト
  4. 読んだベストプラクティスの他 企業が利用します。

する鈍いる場合、ソフトウェアは早くにあふれ、悪initializationsあったとして、それを非常に基本的なプログラミング品質に問題がなくなるわけではありませんが簡単に固定です。と音のハッシュ、平均う機会を設けていきたいと思い私の意図するだけでも構いません。この問題の悪いコードする主要な関心事(う)です。のようなクロムまたはリベラルの使用例外の扱いくプログラムの欠陥だけを邪魔だから本当の問題です。

だという言葉は使っていないかは、対象となるプロジェクトです;有するプロセス毎にタブものではありませんよ"頑健な"コードです。きめ固体コードの試験を問わず携帯性などについて書いのC++コード:)

としての携帯性部ていることを確認してくださいテストを両プラットフォームからないことを確認する新しいコードで書かれまでのプラットフォーム固有の問題を解決しました。

まっいいかChromeてが必要であり、プロセスマネージャであろう方法を覚えます。

を調べてくださいスマートポインターからの力は他のツールをリファレンスカウンターやごみの収集のためのC++.

或いは、いくぶんも考えて書く非、パフォーマンスが重視される部品のお申し込みスクリプト言語とC++ランタイム環境を含んでいます。

スコットMeyers' 有効なC++より効果的なC++ 非常に良く、楽しい読み出します。

スティーブ-マクコーネルの コードの完了 お気に入りですの多くは、ジェフ-Atwood.

"ブライブラリをうです。プロジェクトは日々目まぐるしく変わってい使用します。自分はまだ使用WIN32スレッドです。

いTorlack.

悪の初期化またはあふれているの兆しが品質の悪いコードです。

Googleかったのでそのようなものがあったように制御するコードが実行されたページでは、だいたい年に何故障のプラグイン。で使用している場合は、質の低いプラグインは(もう)しても、解決されています。

が、コンピュータプログラムとなプラグインがクラッシュが多いがひどく、または非常に非常に複雑で、非常に古い(-行方不明者の多いメンテナンス時間).停止する必要があ開発、調査全ンダリングする能力があります。WindowsのコンパイルのモジュールPDBs(プログラムデータベース)、各時間でのライブラリを添付してデバッガです。

いてくれるものでなければなりませ内試験です。のパターン:

doSomethingBad(T * t)
{
   if(t == NULL) return ;

   // do the processing.
}

これはあまり良くなかったのですがデザインなのでエラーがあり、あなただけを回避する この時間.次は機能せずにこのガードンダリングする能力があります。より良いクラッシュし早くに近いからのエラーになります。

代わりに、イがある必要があります同様のAPI MacOS)

doSomethingBad(T * t)
{
   if(t == NULL) ::DebugBreak() ; // it will call the debugger

   // do the processing.
}

(ご使用にならないでください。番号を直接...かたまりをビニール袋に入れの定義を避けるにお届けするクライアント...) ご都合により調整することができAPIエラーに適します(例外を除き、DebugBreak,主張する等)、 がでの使用を停止する瞬間のコードを知って何かの間違っています。

のCのAPIとなりました。利用のC++とイディオム(rau-α(など) とができます。

す。

P.S.:ご利用の場合は例外であるgood choiceな隠しの内部にすることができました。きするのではないかとの問題を悪化でエラーがありますが、プログラムへの継続だろうクラッシュをもとに、腐敗したもので、平均す。

には常に例外処理をプログラムが追いつこれらの種類の断層を無視してその詳細はプラットフォームならではの)...なかったからではなく、両刃の剣です。代わりに検討を有するプログラムの例外をダンプファイルを分析しています。

の場合プログラムの威の予期せぬよう、いったいどんな表情を持っているお客様の内部動するのでしょうか。(粉を山にして真ん中をルーチン/スレッドが突って壊れたかの主要なデータ構造ですか?その場合のエラーとしてのユーザが保存しない、コミットの腐敗をディスク?

横書面により安定したコードは、ひとつのアイディアを出する回答のご質問です。

るかどうかをご利用のプロセスやスレッド)。できる小型/シンプルなウォッチドッグプログラム。その他のプログラムに登録する監視.場合にプロセスに死亡し、又はスレッド金型で開始される予定である、ウォッチドッグ.もちろん通りを少し入った場所に入れても試験したいと思ってい再起動と同じバギー。ie:再起動して5回、第5回、廃止プログラム全体に、ログファイル/syslog.

構築アプリのデバッグシンボル、次のいずれかの条件が成立するの追加例外ハンドラは、設定Dr-ワトソンをクラッシュダンプ(走行drwtsn32.exe /いてもインストールできましては、デバッガなの/私はポップコンフィグのダイアログなし).時にアプリがクラッシュできる検査で良くなかったかwindbgのはvisual studioにより見callstack述してください。

googleのためのシンボルサーバー詳細

も利用できる例外処理をより強固な利用スマートポインタが固定のバグです。

をお勧めしますコンパイル、linux版で下 Valgrind.

Valgrindまでトラックメモリの漏えい、初期化されていないメモリを読み込みおよび多くの他のコードです。私のおすすめします。

後15年間の間、Windows開発し、最近書いた私の最初のクロスプラットフォームのC++ースのアプリケーション(WindowsとLinuxで共通)。これらの課題に取り組み、その過程

  • STL
  • が進みました。特にファイルシステムのスレッドが書けます。
  • ブラウザに基づくポートします。このアプリ'は'HTTPのUIからなるXHTML/CSS/JavaScript(Ajax).これらの資源をサーバーコードのブラウザが必要です。
  • 豊富なユニットテスト。なTDDがあります。この実際の変更は本当に嬉しかった。

使用したXsltproc、C++はLinuxの構築のたLinux港ムがあります。

を構築し、その唯一の方法を辞めのプログラムがクラッシュすることでクラッシュです。を構築する場合で、ぶないと/ほとんどない負けられます。これは二人前です。しかし残念ないリンクです。

われる一部のクラッシュダンプからのメールアドレスとができるので修正の問題です。

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