1*572c4311Sfengbojiang /* This file contains debugging macros to be used when investigating issues. 2*572c4311Sfengbojiang * 3*572c4311Sfengbojiang * ----------------------------------------------------------------------------- 4*572c4311Sfengbojiang * 5*572c4311Sfengbojiang * Copyright (c) 2016, Salvatore Sanfilippo <antirez at gmail dot com> 6*572c4311Sfengbojiang * All rights reserved. 7*572c4311Sfengbojiang * 8*572c4311Sfengbojiang * Redistribution and use in source and binary forms, with or without 9*572c4311Sfengbojiang * modification, are permitted provided that the following conditions are met: 10*572c4311Sfengbojiang * 11*572c4311Sfengbojiang * * Redistributions of source code must retain the above copyright notice, 12*572c4311Sfengbojiang * this list of conditions and the following disclaimer. 13*572c4311Sfengbojiang * * Redistributions in binary form must reproduce the above copyright 14*572c4311Sfengbojiang * notice, this list of conditions and the following disclaimer in the 15*572c4311Sfengbojiang * documentation and/or other materials provided with the distribution. 16*572c4311Sfengbojiang * * Neither the name of Redis nor the names of its contributors may be used 17*572c4311Sfengbojiang * to endorse or promote products derived from this software without 18*572c4311Sfengbojiang * specific prior written permission. 19*572c4311Sfengbojiang * 20*572c4311Sfengbojiang * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21*572c4311Sfengbojiang * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22*572c4311Sfengbojiang * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23*572c4311Sfengbojiang * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 24*572c4311Sfengbojiang * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25*572c4311Sfengbojiang * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26*572c4311Sfengbojiang * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27*572c4311Sfengbojiang * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28*572c4311Sfengbojiang * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29*572c4311Sfengbojiang * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30*572c4311Sfengbojiang * POSSIBILITY OF SUCH DAMAGE. 31*572c4311Sfengbojiang */ 32*572c4311Sfengbojiang 33*572c4311Sfengbojiang #include <stdio.h> 34*572c4311Sfengbojiang #define D(...) \ 35*572c4311Sfengbojiang do { \ 36*572c4311Sfengbojiang FILE *fp = fopen("/tmp/log.txt","a"); \ 37*572c4311Sfengbojiang fprintf(fp,"%s:%s:%d:\t", __FILE__, __func__, __LINE__); \ 38*572c4311Sfengbojiang fprintf(fp,__VA_ARGS__); \ 39*572c4311Sfengbojiang fprintf(fp,"\n"); \ 40*572c4311Sfengbojiang fclose(fp); \ 41*572c4311Sfengbojiang } while (0); 42