OSDN Git Service

* Implement: drd64_libbrownie_error Functions() (Tested.)
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sat, 30 May 2015 22:31:44 +0000 (07:31 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sat, 30 May 2015 22:31:44 +0000 (07:31 +0900)
include/drd64_error.h
include/libbrownie.h
libbrownie/drd64_libbrownie_error.c
libbrownie/test_libbrownie_error.c

index d87e3c1..6775c27 100644 (file)
@@ -71,14 +71,16 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_CODE_CLEAR                  0x00000000
 #define        DRD64_ERROR_LOCATION_CLEAR              0x00000000
 
-/* [Error] Type Code ================== __*_______ */
+/* [Error] Type Code ==================   *_______ */
+#define        DRD64_ERROR_TYPE(n)                             (((DWord)(n))&0xf000000)
 #define        DRD64_ERROR_TYPE_FATAL                  0x80000000
 #define        DRD64_ERROR_TYPE_ERROR                  0x40000000
 #define        DRD64_ERROR_TYPE_WARNING                0x20000000
 #define        DRD64_ERROR_TYPE_INFO                   0x10000000
 #define        DRD64_ERROR_TYPE_NONE                   0x00000000
 
-/* [Error] Pattern Code =============== ____**____ */
+/* [Error] Pattern Code ===============   __**____ */
+#define        DRD64_ERROR_PTN(n)                              (((DWord)(n))&0x00ff0000)
 #define        DRD64_ERROR_PTN_NOERROR                 0x00000000
 #define        DRD64_ERROR_PTN_PACKET                  0x00010000
 #define        DRD64_ERROR_PTN_COMMAND                 0x00020000
@@ -89,11 +91,21 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_PTN_NOMEMORY                0x00070000
 #define        DRD64_ERROR_PTN_SOCKET                  0x00080000
 #define        DRD64_ERROR_PTN_INETADDR                0x00090000
+#define        DRD64_ERROR_PTN_NCURSES                 0x000a0000
 #define        DRD64_ERROR_PTN_BUG                             0x00ff0000
 #define        DRD64_ERROR_PTN_FUNCTION                0x00ff0000
 
+/* [Error] Error Code Level-1 =========   ____**__ */
+#define        DRD64_ERROR_LEVEL1(n)                   ((((DWord)(n)&0x0000ff00))>>8)
 
-/* [Location] Module Level-1 Code ===== __*+______ */
+/* [Error] Error Code Level-2 =========   ______** */
+#define        DRD64_ERROR_LEVEL2(n)                   (((DWord)(n))&0x000000ff)
+
+/* [Location] Module Level-1 Code =====   *+______ */
+#define        DRD64_ERROR_MODULE(n)                   (((DWord)(n))&0xff000000)
+#define        DRD64_ERROR_MODULE_NOARCH(n)    (((DWord)(n))&0xff000000)
+#define        DRD64_ERROR_MODULE_WITHARCH(n)  (((DWord)(n))&0xf0000000)
+#define        DRD64_ERROR_MODULE_IsArch(n)    (((DWord)(n))&0x80000000)
 #define        DRD64_ERROR_MODULE_MARSHALD             0x01000000
 #define        DRD64_ERROR_MODULE_DEBUGD               0x02000000
 #define        DRD64_ERROR_MODULE_SERVER               0x03000000
@@ -102,12 +114,14 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_MODULE_DRCC                 0x20000000
 #define        DRD64_ERROR_MODULE_LIBEDITTEXT  0x31000000
 #define        DRD64_ERROR_MODULE_LIBFILETYPE  0x32000000
-#define        DRD64_ERROR_MODULE_LIBGOBLIN    0x70000000
-#define        DRD64_ERROR_MODULE_LIBASM               0x90000000
-#define        DRD64_ERROR_MODULE_LIBARCH              0xa0000000
-#define        DRD64_ERROR_MODULE_RESERVE              0xf0000000
-
-/* [Location] Archtechture Code ======= ___**_____ */
+#define        DRD64_ERROR_MODULE_LIBGOBLIN    0x40000000
+#define        DRD64_ERROR_MODULE_RESERVE              0x70000000
+#define        DRD64_ERROR_MODULE_LIBASM               0x90000000      /* with ArchCode */
+#define        DRD64_ERROR_MODULE_LIBARCH              0xa0000000      /* with ArchCode */
+#define        DRD64_ERROR_MODULE_ARCHRESERVE  0xf0000000      /* with ArchCode */
+
+/* [Location] Archtechture Code =======   _+*_____ */
+#define        DRD64_ERROR_ARCH(n)                             (((DWord)(n))&0x0ff00000)
 #define        DRD64_ERROR_ARCH_NODEPEND               0x00000000
 #define        DRD64_ERROR_ARCH_INTEL64                0x01100000
 #define        DRD64_ERROR_ARCH_INTEL32                0x01200000
@@ -120,11 +134,17 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_ARCH_SPARC32                0x05200000
 #define        DRD64_ERROR_ARCH_MIPS                   0x06100000
 
+/* [Location] Source File ID ==========   ____**__ */
+#define        DRD64_ERROR_SOURCE(n)                   ((((DWord)(n)&0x0000ff00))>>8)
+
+/* [Location] Function ID =============   ______** */
+#define        DRD64_ERROR_FUNCTION(n)                 (((DWord)(n))&0x000000ff)
 
 typedef struct {
        DWord   dw_error;
        DWord   dw_location;
        int             i_system_errno;
+       int             i_srcline;
        QWord   qw_value[2];
 } Drd64_ErrorInfo;
 
index 8f15527..29f71dd 100644 (file)
@@ -51,13 +51,13 @@ Comment:
 LIBBROWNIE_FUNC
        int LibBrownie_Error_GetReferenceCount( void );
 LIBBROWNIE_FUNC
-       int LibBrownie_Error_DebugErrorInfoPrint( Drd64_ErrorInfo *p_errinfo, int i_id );
+       int LibBrownie_Error_DebugErrorInfoPrint( int i_id );
 LIBBROWNIE_FUNC
        int LibBrownie_Error_DebugAllInfoPrint( void );
 LIBBROWNIE_FUNC
        int LibBrownie_Error_SetErrorInfo(
                        DWord dw_errcode, DWord dw_errlocation, int i_syserrno,
-                       QWord qw_value1, QWord qw_value2 );
+                       QWord qw_value1, QWord qw_value2, int i_srcline );
 LIBBROWNIE_FUNC
        Drd64_ErrorInfo *LibBrownie_Error_GetErrorInfo( int i_history_id );
 LIBBROWNIE_FUNC
index 121d829..4a224c7 100644 (file)
@@ -37,10 +37,10 @@ Comment:
 #define        DRD64_SRC_LIBBROWNIE_ERROR
 #include"drd64_libbrownie.h"
 
-static Drd64_ErrorInfo *gp_errorinfo_pool              = NULL;
-static Drd64_ErrorInfo **gpp_errorinfo_history = NULL;
-static int                             gi_max_errorinfo                = -1;
-static int                             gi_refcount                             = 0;
+static Drd64_ErrorInfo *gp_errorinfo           = NULL;
+static int                             gi_max_errorinfo        = -1;
+static int                             gi_refcount                     = 0;
+static int                             gi_now_errorinfo        = 0;
 
 
 /*----------------------------------------------------------------------
@@ -59,21 +59,136 @@ int
 LIBBROWNIE_FUNC
 int
        LibBrownie_Error_DebugErrorInfoPrint(
-               Drd64_ErrorInfo *p_errinfo,
                int     i_id )
 {
+       char    *pstr_errtype   = NULL;
+       char    *pstr_errptn    = NULL;
+       char    *pstr_module    = NULL;
+       char    *pstr_arch              = NULL;
+       DWord   dw_tmp;
+       DWord   dw_errlv1;
+       DWord   dw_errlv2;
+       DWord   dw_srcid;
+       DWord   dw_funcid;
+       
+       Drd64_ErrorInfo         *p_errinfo;
 
+       p_errinfo       =       LibBrownie_Error_GetErrorInfo( i_id );
        assert( NULL != p_errinfo );
 
-       if( -1 == i_id )
-               { puts("[ErrorInfo] ---------------------------------------------------------"); }
-       else
-               { printf("[ErrorInfo] %2d ------------------------------------------------------\n", i_id ); }
-       printf("  ErrCode : %08x \n", p_errinfo->dw_error );
-       printf("  Location: %08x \n", p_errinfo->dw_location );
+       printf("[ErrorInfo] %2d ------------------------------------------------------------\n", i_id );
+       printf("  ErrCode : %08x h\n", p_errinfo->dw_error );
+
+       dw_tmp  = DRD64_ERROR_TYPE( p_errinfo->dw_error );
+       switch( dw_tmp )        {
+               case DRD64_ERROR_TYPE_FATAL:    pstr_errtype    = "FATAL";      break;
+               case DRD64_ERROR_TYPE_ERROR:    pstr_errtype    = "ERROR";      break;
+               case DRD64_ERROR_TYPE_WARNING:  pstr_errtype    = "WARN.";      break;
+               case DRD64_ERROR_TYPE_INFO:             pstr_errtype    = "INFO ";      break;
+               case DRD64_ERROR_TYPE_NONE:             pstr_errtype    = "NONE ";      break;
+               default:                                                pstr_errtype    = "(BUG)";      break;
+       }
+
+       dw_tmp  = DRD64_ERROR_PTN( p_errinfo->dw_error );
+       switch( dw_tmp )        {
+               case DRD64_ERROR_PTN_PACKET:    pstr_errptn     = "Fail Packet";                break;
+               case DRD64_ERROR_PTN_COMMAND:   pstr_errptn     = "Fail Command";               break;
+               case DRD64_ERROR_PTN_LOG:               pstr_errptn     = "Log";                                break;
+               case DRD64_ERROR_PTN_SYSCALL:   pstr_errptn     = "SysCall Error";              break;
+               case DRD64_ERROR_PTN_TIMEOUT:   pstr_errptn     = "TimeOut";                    break;
+               case DRD64_ERROR_PTN_NOEXIST:   pstr_errptn     = "No File/Dir Exist."; break;
+               case DRD64_ERROR_PTN_NOMEMORY:  pstr_errptn     = "No engouh Memory";   break;
+               case DRD64_ERROR_PTN_SOCKET:    pstr_errptn     = "Socket Error";               break;
+               case DRD64_ERROR_PTN_INETADDR:  pstr_errptn     = "Fail IPaddr.";               break;
+               case DRD64_ERROR_PTN_BUG:               pstr_errptn     = "BUG!!";                              break;
+               case DRD64_ERROR_PTN_NOERROR:   pstr_errptn     = "(no error)";                 break;
+               default:                                                pstr_errptn     = "(Undefined Ptn.)";   break;
+       }
+
+       dw_errlv1       = DRD64_ERROR_LEVEL1( p_errinfo->dw_error );
+       dw_errlv2       = DRD64_ERROR_LEVEL2( p_errinfo->dw_error );
+
+       printf("    (Type: %5s, Pattern: %25s, Lv1: %2x h, Lv2: %2x h)\n",
+                                                       pstr_errtype, pstr_errptn, dw_errlv1, dw_errlv2 );
+
+       printf("  Location: %08x h\n", p_errinfo->dw_location );
+
+       if( DRD64_ERROR_MODULE_IsArch( p_errinfo->dw_location ) )       {
+               dw_tmp  = DRD64_ERROR_MODULE_WITHARCH( p_errinfo->dw_location );
+
+               switch( dw_tmp )        {
+                       case DRD64_ERROR_MODULE_MARSHALD:
+                                       pstr_module = "marshald";               break;
+                       case DRD64_ERROR_MODULE_DEBUGD:
+                                       pstr_module = "debugd";                 break;
+                       case DRD64_ERROR_MODULE_SERVER:
+                                       pstr_module = "server";                 break;
+                       case DRD64_ERROR_MODULE_LIBDRD64:
+                                       pstr_module = "libdrd64";               break;
+                       case DRD64_ERROR_MODULE_LIBBROWNIE:
+                                       pstr_module = "libbrownie";             break;
+                       case DRD64_ERROR_MODULE_DRCC:
+                                       pstr_module = "drcc";                   break;
+                       case DRD64_ERROR_MODULE_LIBEDITTEXT:
+                                       pstr_module = "libedittext";    break;
+                       case DRD64_ERROR_MODULE_LIBFILETYPE:
+                                       pstr_module = "libfiletype";    break;
+                       case DRD64_ERROR_MODULE_LIBGOBLIN:
+                                       pstr_module = "libgoblin";              break;
+                       default:
+                                       pstr_module = "(Undef. Mod.)";  break;
+               }
+
+               pstr_arch       = "(Imdepend Arch.)";
+       }
+       else    {
+               dw_tmp  = DRD64_ERROR_MODULE_NOARCH( p_errinfo->dw_location );
+               switch( dw_tmp )        {
+                       case DRD64_ERROR_MODULE_LIBASM:
+                                       pstr_module = "libasm";         break;
+                       case DRD64_ERROR_MODULE_LIBARCH:
+                                       pstr_module = "libarch";        break;
+                       default:
+                                       pstr_module = "(Undef. Mod.)";  break;
+               }
+
+               dw_tmp  = DRD64_ERROR_ARCH( p_errinfo->dw_location );
+               switch( dw_tmp )        {
+                       case DRD64_ERROR_ARCH_INTEL64:
+                                       pstr_arch = "INTEL64 (amd64/x86-64)";   break;
+                       case DRD64_ERROR_ARCH_INTEL32:
+                                       pstr_arch = "IA32 (x86)";                               break;
+                       case DRD64_ERROR_ARCH_INTEL16:
+                                       pstr_arch = "IA32 (x86) 16bit-binary";  break;
+                       case DRD64_ERROR_ARCH_POWERPC64:
+                                       pstr_arch = "IBM Power 64bit-arch";             break;
+                       case DRD64_ERROR_ARCH_POWERPC32:
+                                       pstr_arch = "IBM Power 32bit-arch";             break;
+                       case DRD64_ERROR_ARCH_ARM64:
+                                       pstr_arch = "ARM v8 (aarch64/arm64)";   break;
+                       case DRD64_ERROR_ARCH_ARM32:
+                                       pstr_arch = "ARM v7 (arm 32bit)";               break;
+                       case DRD64_ERROR_ARCH_SPARC64:
+                                       pstr_arch = "SPARC 64bit-arch";                 break;
+                       case DRD64_ERROR_ARCH_SPARC32:
+                                       pstr_arch = "SPARC 32bit-arch";                 break;
+                       case DRD64_ERROR_ARCH_MIPS:
+                                       pstr_arch = "MIPS arch";                                break;
+                       default:
+                                       pstr_arch = "(Undef. Arch.)";   break;
+               }
+       }
+
+       dw_srcid        = DRD64_ERROR_SOURCE( p_errinfo->dw_location );
+       dw_funcid       = DRD64_ERROR_FUNCTION( p_errinfo->dw_location );
+
+       printf("    (Module: %20s, Arch: %25s)\n", pstr_module, pstr_arch );
+       printf("    (SrcID: %2x h, FuncID: %2x h, SrcLine: %4d)\n",
+                                                       dw_srcid, dw_funcid, p_errinfo->i_srcline);
+
        printf("  errno   : %d \n", p_errinfo->i_system_errno );
-       printf("  Value 1 : %016lx (%lu) \n", p_errinfo->qw_value[0], p_errinfo->qw_value[0] );
-       printf("  Value 2 : %016lx (%lu) \n", p_errinfo->qw_value[1], p_errinfo->qw_value[1] );
+       printf("  Value 1 : %016lx h  (%lu) \n", p_errinfo->qw_value[0], p_errinfo->qw_value[0] );
+       printf("  Value 2 : %016lx h  (%lu) \n", p_errinfo->qw_value[1], p_errinfo->qw_value[1] );
 
        return 0x00;
 }
@@ -87,16 +202,13 @@ int
                void )
 {
        int     i_cnt;
-       Drd64_ErrorInfo         *p_errinfo;
 
-       puts("[ErrorInfo Dump]*****************************************************");
+       puts("[ErrorInfo Dump]***********************************************************");
 
        for( i_cnt = 0; i_cnt < gi_max_errorinfo; i_cnt++ )     {
-               p_errinfo       = *(gpp_errorinfo_history + i_cnt);
-
-               LibBrownie_Error_DebugErrorInfoPrint( p_errinfo, i_cnt );
+               LibBrownie_Error_DebugErrorInfoPrint( i_cnt );
        }
-       puts("*********************************************************************");
+       puts("***************************************************************************");
 
        return 0x00;
 }
@@ -111,25 +223,23 @@ int
                DWord   dw_errlocation,
                int             i_syserrno,
                QWord   qw_value1,
-               QWord   qw_value2 )
+               QWord   qw_value2,
+               int             i_srcline )
 {
-       int             i_cnt;
        Drd64_ErrorInfo         *p_errinfo;
 
-       p_errinfo       = *(gpp_errorinfo_history + (gi_max_errorinfo - 1));
-       for( i_cnt = gi_max_errorinfo - 1; i_cnt > 0; i_cnt-- )         {
-               *(gpp_errorinfo_history + i_cnt)
-                       = *(gpp_errorinfo_history + (i_cnt - 1));
-       }
+       gi_now_errorinfo        = (gi_now_errorinfo + 1) % gi_max_errorinfo;
+
+       p_errinfo       = (gp_errorinfo + gi_now_errorinfo);
+       assert( NULL != p_errinfo );
 
        p_errinfo->dw_error                     = dw_errcode;
        p_errinfo->dw_location          = dw_errlocation;
        p_errinfo->i_system_errno       = i_syserrno;
+       p_errinfo->i_srcline            = i_srcline;
        p_errinfo->qw_value[0]          = qw_value1;
        p_errinfo->qw_value[1]          = qw_value2;
 
-       *(gpp_errorinfo_history + 0)    = p_errinfo;
-       
        return 0x00;
 }
 
@@ -141,12 +251,17 @@ Drd64_ErrorInfo *
        LibBrownie_Error_GetErrorInfo(
                int i_history_id )
 {
+       int                                     i_errinfo_id;
        Drd64_ErrorInfo         *p_errinfo;
 
        if((gi_max_errorinfo <= i_history_id ) || ( 0 > i_history_id ))
                { return NULL; }
+       
+       i_errinfo_id    = ( (gi_now_errorinfo < i_history_id)
+                                                       ? (gi_max_errorinfo + gi_now_errorinfo - i_history_id)
+                                                       : (gi_now_errorinfo - i_history_id));
 
-       p_errinfo       = *(gpp_errorinfo_history + i_history_id);
+       p_errinfo               = (gp_errorinfo + i_errinfo_id);
 
        return p_errinfo;
 }
@@ -159,13 +274,10 @@ int
        LibBrownie_Error_InitErrorSystem(
                void )
 {
-       int                                     i_cnt;
        Drd64_ErrorInfo         *p_errinfo;
-       Drd64_ErrorInfo         **pp_errhistory;
 
-       gp_errorinfo_pool               = NULL;
-       gpp_errorinfo_history   = NULL;
-       gi_max_errorinfo                = 0;
+       gp_errorinfo            = NULL;
+       gi_max_errorinfo        = 0;
 
        gi_refcount++;
        if( 1 < gi_refcount )   { return 0x00; }
@@ -176,17 +288,9 @@ int
 
        memset( p_errinfo, 0x00, sizeof( Drd64_ErrorInfo ) * LIBBROWNIE_ERROR_MAXERRORS );
 
-       
-       pp_errhistory = (Drd64_ErrorInfo **)malloc(
-                                               sizeof( Drd64_ErrorInfo * ) * LIBBROWNIE_ERROR_MAXERRORS );
-       if( NULL == pp_errhistory )             { return 0x02; }
-
-       for( i_cnt = 0; i_cnt < LIBBROWNIE_ERROR_MAXERRORS; i_cnt++ )
-               { *(pp_errhistory + i_cnt )     = (p_errinfo + i_cnt); }
-
-       gp_errorinfo_pool               = p_errinfo;
-       gpp_errorinfo_history   = pp_errhistory;
-       gi_max_errorinfo                = LIBBROWNIE_ERROR_MAXERRORS;
+       gp_errorinfo            = p_errinfo;
+       gi_max_errorinfo        = LIBBROWNIE_ERROR_MAXERRORS;
+       gi_now_errorinfo        = LIBBROWNIE_ERROR_MAXERRORS - 1;
        
        return 0x00;
 }
@@ -203,14 +307,9 @@ void
        gi_refcount--;
        if( 0 < gi_refcount )   { return; }
 
-       if( NULL != gp_errorinfo_pool ) {
-               free( gp_errorinfo_pool );
-               gp_errorinfo_pool               = NULL;
-       }
-               
-       if( NULL != gpp_errorinfo_history )     {
-               free( gpp_errorinfo_history );
-               gpp_errorinfo_history   = NULL;
+       if( NULL != gp_errorinfo )      {
+               free( gp_errorinfo );
+               gp_errorinfo            = NULL;
        }
 
        gi_max_errorinfo                = 0;
index b815f5b..e11ae21 100644 (file)
@@ -90,56 +90,55 @@ void Test_LibBrownie_Error_test00_002(void)
        dw_location     = DRD64_ERR_LOCATION( DRD64_ERROR_MODULE_LIBBROWNIE, DRD64_ERROR_ARCH_NODEPEND, 0x12,0x34 );
        qw_value        = 0xfedcba0987654000;
        p_test          = &qw_value;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654001;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654002;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654003;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654004;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654005;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654006;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654007;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654008;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654009;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400a;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400b;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400c;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400d;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400e;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba098765400f;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        qw_value        = 0xfedcba0987654010;
-       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test );
-
+       LibBrownie_Error_SetErrorInfo( dw_error, dw_location, -1, qw_value, (QWord)p_test, __LINE__ );
 
        LibBrownie_Error_DebugAllInfoPrint();