ファイル書き込みを使用して Linux アプリケーションをデバッグする方法

ファイル書き込みを使用して Linux アプリケーションをデバッグする方法

Linux ではすべてがファイルなので、Android システム自体は Linux + Java だけであり、Linux 環境でも動作します。

通常、プログラムをデバッグするときに printf を使用します。

Androidではlogcatを使います。ここではよく使われるデバッグ方法である、デバッグ書き込みファイルによるデバッグ方法を紹介します。

Android システムでは、C アプリケーションのデバッグは非常に不便です。ログの整合性を維持するために、ファイル デバッグ メソッドが重要な役割を果たします。次に例を示します。

#include <stdio.h>
ファイル * write_debug_file=NULL;
//デバッグ情報をファイルに書き込む void write_Debug_to_file(char *debug_log)
{
 if(write_debug_file==NULL)
 wirte_debug_file = fopen("debug.txt","wt");
 if(write_debug_file==NULL)
 戻る;
 fputs(debug_log、write_debug_file);
}
int メイン(void)
{
 整数 i ;
 char buf[100];
 (i = 0 ; i < 10 ; i++)の場合
 {
 sprintf(buf,"i:%d\n",i);
 //デバッグ情報を書き込む write_Debug_to_file(buf);
 }
 write_debug_file が NULL の場合
 fclose(write_debug_file);
 0 を返します。
}

実行結果:

debug.txt を開くと、次の内容が表示されます。

私:0
私:1
私:2
私:3
私:4
私:5
私:6
私:7
私:8
私:9

印刷されたデータはこのファイルに保存されます。コード セグメント内の任意の文をログに書き込んで、後で問題を分析することもできます。

これは非常に優れたデバッグ ツールです。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Java リモート デバッグ チュートリアル (Eclipse を例に)
  • C# でブレークポイントを使用してプログラムをデバッグする手順の詳細な説明
  • IOSはNSAssert()とNSParameterAssertを使用してプログラムをデバッグします
  • PDB ライブラリを使用して Python でプログラムをデバッグする
  • WiFiを使用してUbuntuをAndroidデバッグプログラムに接続する手順
  • Android 開発ノート: Logcat を使用してプログラムをデバッグする方法を 1 分で学ぶ
  • ASP でプログラムをデバッグするためのデバッグ クラス
  • bat を使用してシステム スクリプト デバッガーを削除する
  • asp:debug クラス デバッガー

<<:  モバイル端末での Vue2.x Picker のグローバル呼び出し実装

>>:  MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明

推薦する

mysql 更新ケース更新フィールド値が固定されていない操作

特定のデータの一括更新処理において、特定のステータスが固定値に更新されるなど、更新するフィールドの値...

Vue の 4 つのカスタム命令の説明と使用例

4つの実用的なVueカスタム指示1. Vドラッグ要件: マウスドラッグ要素アイデア:要素のオフセット...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...

主キーを追加または変更するMySQL SQL文操作

テーブルフィールドを追加する テーブルtable1を変更し、トランザクタvarchar(10)をNu...

Dockerコンテナを使用してプロキシ転送とデータバックアップを実装する方法

序文アプリケーションを Docker コンテナとしてサーバーにデプロイする場合、通常はネットワークと...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

Html、sHtml、XHtml の違いのまとめ

たとえば、<u>には終了文字がなく、ブラウザはそれを認識します。 SHTML は Ser...

Linux カーネルの copy_{to, from}_user() に関する考察

目次1. copy_{to,from}_user() とは何か1. copy_{to,from}_u...

ポータルサイト再設計のユーザーエクスペリエンス

<br />2006年10月12日のNetEaseの新ホームページの公開から、2008年...

Webpack で環境変数を使用するためのさまざまな正しい姿勢

目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...

JavaScript 関数呼び出しの典型的なサンプルコード

目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...

dockerカスタムイメージでphp7をビルドする方法

まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...

MySQLデータベースのストアドプロシージャとトランザクションの違い

トランザクションは、複数の SQL ステートメントの原子性、つまり、それらが一緒に完了するか、一緒に...

史上最も簡単な MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 37)

データのバックアップと復元パート3の詳細は次のとおりです基本的な概念:バックアップ、現在のデータまた...

時間に基づいて日付をクエリするためのMySQL最適化テクニック

たとえば、昨日新規登録されたユーザーを照会するには、次の 2 つの書き方があります。 説明する ch...