Log Debug

---

Debugで出力するLogは基本的に以下の情報を出力する。

  • 関数の入通知と引数のダンプ
  • 関数の出通知と返値のダンプ
  • メモリ確保時(malloc)のメモリサイズとアドレス
  • メモリ開放時(free)のメモリアドレス
  • ポインタの先に代入する場合にはそのポインタの型と内容
  • iomuxの状態変更時の変更前と変更後の内容
  • 重要なシステム関数を呼ぶ場合(ioctl()等)にその関数名と引数のダンプ
  • 通信データダンプ(16進表示)

    以下必要な情報は随時追加

---

またdebugログを出力する場合は必ず現状のログレベルがdebugであることを確認し、出力するデータを作成すること。

---

example.

  1. int foo( int integer, char* name, struct sct_t* t ){
  2. int* ptr = NULL;
  3. if( DEBUG == get_log_level() ){
  4. char buf[256];
  5. memset( buf, NULL, sizeof(buf) );
  6. sprintf( buf, "function foo(int, char* struct sct_t* ) in "
  7. " int value = %d "
  8. " char* value = %s"
  9. " struct sct_t* address = %x"
  10. " sct_t.x = %d "
  11. " sct_t.y = %d " ,
  12. integer, name, (intptr_t) t, t->x, t->y );
  13. logputDEBUG( CATEGORY_LOGIC, buf );
  14. }
  15. ptr = malloc( sizeof(int) );
  16. if( DEBUG == get_log_level() ){
  17. char buf[256];
  18. memset( buf, NULL, sizeof(buf) );
  19. sprintf( buf, "memory allocate address: %x, size :%d" , (intptr_t) ptr, sizeof(int) );
  20. logputDEBUG( CATEGORY_LOGIC, buf );
  21. }
  22. if( !ptr ){
  23. logputERROR( "don't allocate memory" );
  24. if( DEBUG == get_log_level() ) logputDEBUG( "function foo() return -1" );
  25. return -1;
  26. }
  27. free( ptr );
  28. if( DEBUG == get_log_level() ){
  29. logputDEBUG( "memory free address: %x, size :%d", (intptr_t) ptr, sizeof(int) );
  30. logoutDEBUG( "return function foo() return 0" );
  31. }
  32. return 0;
  33. }