Re: How to debugging a an external C function(IMMUTABLE STRICT )
От | Tom Lane |
---|---|
Тема | Re: How to debugging a an external C function(IMMUTABLE STRICT ) |
Дата | |
Msg-id | 10375.1330278418@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | How to debugging a an external C function(IMMUTABLE STRICT ) (Dave Potts <dave.potts@pinan.co.uk>) |
Список | pgsql-general |
Dave Potts <dave.potts@pinan.co.uk> writes: > I have written an external C function to be called by postgres called > using the LANGUAGE 'C' IMMUNTABLE STRICT interface > Most of the time when call it, I get the expected results. Some times I > get random rubbish in the result set. > If there any debug support in Postgres to catch this type of thing? You should pretty much always do development of any C code in a backend built with --enable-cassert --enable-debug. In particular that will turn on clobbering of freed memory, which is really helpful in turning some types of sometimes-failure into consistent failures that can be debugged. That might not be your problem here, but it's worth a try. I also get the impression that the only debug technique you know about is inserting printfs. Learn to use gdb or another debugger to step through your code --- the learning curve isn't that steep, and the benefits numerous. There's useful Postgres-specific info about using gdb here: http://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_PostgreSQL_backend_on_Linux/BSD regards, tom lane
В списке pgsql-general по дате отправления: