Re: Upgrading the backend's error-message infrastructure
От | Larry Rosenman |
---|---|
Тема | Re: Upgrading the backend's error-message infrastructure |
Дата | |
Msg-id | 73290000.1047590020@lerlaptop.lerctr.org обсуждение исходный текст |
Ответ на | Upgrading the backend's error-message infrastructure (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Upgrading the backend's error-message infrastructure
|
Список | pgsql-hackers |
--On Thursday, March 13, 2003 15:51:00 -0500 Tom Lane <tgl@sss.pgh.pa.us> wrote: > (__FUNCTION__ is only used if we are compiling in gcc). errstart() pushes > an empty entry onto an error-data-collection stack and fills in the > behind-the-scenes file/line entries. errmsg() and friends stash values > into the top-level stack entry. Finally errfinish() assembles and emits > the completed message, then pops the stack. By using a stack, we can be > assured that things will work correctly if a message is logged by some > subroutine called in the parameters to ereport (not too unlikely when you > think about formatting functions like format_type_be()). > __FUNCTION__ or an equivalent is MANDATED by C99, and available on UnixWare's native cc. You might want to make a configure test for it. I believe the __func__ is the C99 spelling (that's what's available on UnixWare): $ cc -O -o testfunc testfunc.c $ ./testfunc function=main,file=testfunc.c,line=4 $ cat testfunc.c #include <stdio.h> int main(int argc,char **argv) { printf("function=%s,file=%s,line=%d\n",__func__,__FILE__,__LINE__); } $ -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 972-414-9812 E-Mail: ler@lerctr.org US Mail: 1905 Steamboat Springs Drive, Garland, TX 75044-6749
В списке pgsql-hackers по дате отправления: