PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - mysqlnd - mysqlnd_debug.h
Test: PHP Code Coverage
Date: 2009-11-21 Instrumented lines: 5
Code covered: 100.0 % Executed lines: 5
Legend: not executed executed

       1                 : /*
       2                 :   +----------------------------------------------------------------------+
       3                 :   | PHP Version 6                                                        |
       4                 :   +----------------------------------------------------------------------+
       5                 :   | Copyright (c) 2006-2009 The PHP Group                                |
       6                 :   +----------------------------------------------------------------------+
       7                 :   | This source file is subject to version 3.01 of the PHP license,      |
       8                 :   | that is bundled with this package in the file LICENSE, and is        |
       9                 :   | available through the world-wide-web at the following url:           |
      10                 :   | http://www.php.net/license/3_01.txt                                  |
      11                 :   | If you did not receive a copy of the PHP license and are unable to   |
      12                 :   | obtain it through the world-wide-web, please send a note to          |
      13                 :   | license@php.net so we can mail you a copy immediately.               |
      14                 :   +----------------------------------------------------------------------+
      15                 :   | Authors: Georg Richter <georg@mysql.com>                             |
      16                 :   |          Andrey Hristov <andrey@mysql.com>                           |
      17                 :   |          Ulf Wendel <uwendel@mysql.com>                              |
      18                 :   +----------------------------------------------------------------------+
      19                 : */
      20                 : 
      21                 : /* $Id: mysqlnd_debug.h 278018 2009-03-30 13:55:47Z johannes $ */
      22                 : 
      23                 : #ifndef MYSQLND_DEBUG_H
      24                 : #define MYSQLND_DEBUG_H
      25                 : 
      26                 : #include "zend_stack.h"
      27                 : 
      28                 : #define MYSQLND_DEBUG_MEMORY 1
      29                 : 
      30                 : struct st_mysqlnd_debug_methods
      31                 : {
      32                 :         enum_func_status (*open)(MYSQLND_DEBUG *self, zend_bool reopen);
      33                 :         void                     (*set_mode)(MYSQLND_DEBUG *self, const char * const mode);
      34                 :         enum_func_status (*log)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
      35                 :                                                         unsigned int level, const char * type, const char *message);
      36                 :         enum_func_status (*log_va)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
      37                 :                                                            unsigned int level, const char * type, const char *format, ...);
      38                 :         zend_bool (*func_enter)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
      39                 :                                                         char * func_name, unsigned int func_name_len);
      40                 :         enum_func_status (*func_leave)(MYSQLND_DEBUG *self, unsigned int line, const char * const file);
      41                 :         enum_func_status (*close)(MYSQLND_DEBUG *self);
      42                 :         enum_func_status (*free_handle)(MYSQLND_DEBUG *self);
      43                 : };
      44                 : 
      45                 : struct st_mysqlnd_debug
      46                 : {
      47                 :         php_stream      *stream;
      48                 : #ifdef ZTS
      49                 :         TSRMLS_D;
      50                 : #endif
      51                 :         unsigned int flags;
      52                 :         unsigned int nest_level_limit;
      53                 :         int pid;
      54                 :         char * file_name;
      55                 :         zend_stack call_stack;
      56                 :         HashTable not_filtered_functions;
      57                 :         struct st_mysqlnd_debug_methods *m;
      58                 : };
      59                 : 
      60                 : 
      61                 : PHPAPI MYSQLND_DEBUG *mysqlnd_debug_init(TSRMLS_D);
      62                 : 
      63                 : #define MYSQLND_MEM_D   TSRMLS_DC ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC
      64                 : 
      65                 : 
      66                 : void *  _mysqlnd_emalloc(size_t size MYSQLND_MEM_D);
      67                 : void *  _mysqlnd_pemalloc(size_t size, zend_bool persistent MYSQLND_MEM_D);
      68                 : void *  _mysqlnd_ecalloc(unsigned int nmemb, size_t size MYSQLND_MEM_D);
      69                 : void *  _mysqlnd_pecalloc(unsigned int nmemb, size_t size, zend_bool persistent MYSQLND_MEM_D);
      70                 : void *  _mysqlnd_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D);
      71                 : void *  _mysqlnd_perealloc(void *ptr, size_t new_size, zend_bool persistent MYSQLND_MEM_D);
      72                 : void    _mysqlnd_efree(void *ptr MYSQLND_MEM_D);
      73                 : void    _mysqlnd_pefree(void *ptr, zend_bool persistent MYSQLND_MEM_D);
      74                 : void *  _mysqlnd_malloc(size_t size MYSQLND_MEM_D);
      75                 : void *  _mysqlnd_calloc(unsigned int nmemb, size_t size MYSQLND_MEM_D);
      76                 : void *  _mysqlnd_realloc(void *ptr, size_t new_size MYSQLND_MEM_D);
      77                 : void    _mysqlnd_free(void *ptr MYSQLND_MEM_D);
      78                 : 
      79                 : char *  mysqlnd_get_backtrace(TSRMLS_D);
      80                 : 
      81                 : #if MYSQLND_DBG_ENABLED == 1
      82                 : 
      83                 : #define DBG_INF(msg) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ", (msg)); } while (0)
      84                 : #define DBG_ERR(msg) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error: ", (msg)); } while (0)
      85                 : #define DBG_INF_FMT(...) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log_va(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ", __VA_ARGS__); } while (0)
      86                 : #define DBG_ERR_FMT(...) do { if (dbg_skip_trace == FALSE) MYSQLND_G(dbg)->m->log_va(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error: ", __VA_ARGS__); } while (0)
      87                 : 
      88                 : #define DBG_ENTER(func_name) zend_bool dbg_skip_trace = TRUE; if (MYSQLND_G(dbg)) dbg_skip_trace = !MYSQLND_G(dbg)->m->func_enter(MYSQLND_G(dbg), __LINE__, __FILE__, func_name, strlen(func_name));
      89                 : #define DBG_RETURN(value)       do { if (MYSQLND_G(dbg)) MYSQLND_G(dbg)->m->func_leave(MYSQLND_G(dbg), __LINE__, __FILE__); return (value); } while (0)
      90                 : #define DBG_VOID_RETURN         do { if (MYSQLND_G(dbg)) MYSQLND_G(dbg)->m->func_leave(MYSQLND_G(dbg), __LINE__, __FILE__); return; } while (0)
      91                 : 
      92                 : #elif MYSQLND_DBG_ENABLED == 0
      93                 : 
      94                 : 
      95          358320 : static inline void DBG_INF(const char * const msg) {}
      96              57 : static inline void DBG_ERR(const char * const msg) {}
      97         4622895 : static inline void DBG_INF_FMT(const char * const format, ...) {}
      98              83 : static inline void DBG_ERR_FMT(const char * const format, ...) {}
      99         2172966 : static inline void DBG_ENTER(const char * const func_name) {}
     100                 : #define DBG_RETURN(value)       return (value)
     101                 : #define DBG_VOID_RETURN         return
     102                 : #endif
     103                 : 
     104                 : 
     105                 : #if MYSQLND_DEBUG_MEMORY
     106                 : 
     107                 : #define mnd_emalloc(size)                               _mysqlnd_emalloc((size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     108                 : #define mnd_pemalloc(size, pers)                _mysqlnd_pemalloc((size), (pers) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     109                 : #define mnd_ecalloc(nmemb, size)                _mysqlnd_ecalloc((nmemb), (size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     110                 : #define mnd_pecalloc(nmemb, size, p)    _mysqlnd_pecalloc((nmemb), (size), (p) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     111                 : #define mnd_erealloc(ptr, new_size)             _mysqlnd_erealloc((ptr), (new_size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     112                 : #define mnd_perealloc(ptr, new_size, p) _mysqlnd_perealloc((ptr), (new_size), (p) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     113                 : #define mnd_efree(ptr)                                  _mysqlnd_efree((ptr) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     114                 : #define mnd_pefree(ptr, pers)                   _mysqlnd_pefree((ptr), (pers) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     115                 : #define mnd_malloc(size)                                _mysqlnd_malloc((size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     116                 : #define mnd_calloc(nmemb, size)                 _mysqlnd_calloc((nmemb), (size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     117                 : #define mnd_realloc(ptr, new_size)              _mysqlnd_realloc((ptr), (new_size) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     118                 : #define mnd_free(ptr)                                   _mysqlnd_free((ptr) TSRMLS_CC ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
     119                 : 
     120                 : #else
     121                 : 
     122                 : #define mnd_emalloc(size)                               emalloc((size))
     123                 : #define mnd_pemalloc(size, pers)                pemalloc((size), (pers))
     124                 : #define mnd_ecalloc(nmemb, size)                ecalloc((nmemb), (size))
     125                 : #define mnd_pecalloc(nmemb, size, p)    pecalloc((nmemb), (size), (p))
     126                 : #define mnd_erealloc(ptr, new_size)             erealloc((ptr), (new_size))
     127                 : #define mnd_perealloc(ptr, new_size, p) perealloc((ptr), (new_size), (p))
     128                 : #define mnd_efree(ptr)                                  efree((ptr))
     129                 : #define mnd_pefree(ptr, pers)                   pefree((ptr), (pers))
     130                 : #define mnd_malloc(size)                                malloc((size))
     131                 : #define mnd_calloc(nmemb, size)                 calloc((nmemb), (size))
     132                 : #define mnd_realloc(ptr, new_size)              realloc((ptr), (new_size))
     133                 : #define mnd_free(ptr)                                   free((ptr))
     134                 : 
     135                 : #endif
     136                 : 
     137                 : #endif /* MYSQLND_DEBUG_H */
     138                 : 
     139                 : /*
     140                 :  * Local variables:
     141                 :  * tab-width: 4
     142                 :  * c-basic-offset: 4
     143                 :  * End:
     144                 :  * vim600: noet sw=4 ts=4 fdm=marker
     145                 :  * vim<600: noet sw=4 ts=4
     146                 :  */

Generated by: LTP GCOV extension version 1.5

Generated at Sat, 21 Nov 2009 12:27:03 +0000 (3 days ago)

Copyright © 2005-2009 The PHP Group
All rights reserved.