Dave Page píše v Po 13. 08. 2007 v 20:39 +0100:
>
> > ------- Original Message -------
> > From: Pavel Stěhule <pstehule@ilikethis.cz>
> > To: pgAdmin Support <pgadmin-support@postgresql.org>
> > Sent: 13/08/07, 19:36:26
> > Subject: [pgadmin-support] pgadmin go down when I want to start debug plpgsql function
> >
> > Hello
> >
> > this functionality works now?
> >
>
> Yes.
>
> For anything more useful I'm afraid I need more clues than 'pgadmin go down' - eg, server version? global or direct
debugging?function definition? what happens exactly and when in the debugging process?
>
> Regards, Dave
I am sorry Dave. It was fast query, if has any sense test it.
pgadmin3-src-20070814.tar.gz
pgadmin3-1.8.0-beta3
PostgreSQL directory: /usr/local/pgsql
PostgreSQL pg_config binary: /usr/local/pgsql/bin/pg_config
PostgreSQL version: PostgreSQL 8.3devel
PostgreSQL SSL support: Missing
wxWidgets directory: /usr/local
wxWidgets wx-config binary: /usr/local/bin/wx-config
wxWidgets version: wxWidgets 2.8.4
libxml2 directory: /usr
libxml2 xml2-config binary: /usr/bin/xml2-config
libxml2 version: libxml2 2.6.29
libxslt directory: /usr
libxslt xslt-config binary: /usr/bin/xslt-config
libxslt version: libxslt 1.1.21
Building a debug version of pgAdmin: Yes
Statically linking pgAdmin: No
Building a Mac OS X appbundle: No
platform fc7
===========================================================================
on right click over function item
./src/gtk/menu.cpp(984): assert "IsCheckable()" failed in IsChecked():
can't get state of uncheckable item!
ASSERT INFO:
./src/gtk/menu.cpp(984): assert "IsCheckable()" failed in IsChecked():
can't get state of uncheckable item!
BACKTRACE:
[1] wxMenuItem::IsChecked() cons)
[2] menuFactoryList::AppendEnabledMenus(wxMenuBar*,
wxMenu*) /home/pavel/src/pgadmin3-1.8.0-beta3/pgadmin/./utils/factory.cpp:320
[3] frmMain::doPopup(wxWindow*, wxPoint,
pgObject*) /home/pavel/src/pgadmin3-1.8.0-beta3/pgadmin/./frm/events.cpp:423
[4]
frmMain::OnSelRightClick(wxTreeEvent&) /home/pavel/src/pgadmin3-1.8.0-beta3/pgadmin/./frm/events.cpp:506
[5] wxAppConsole::HandleEvent(wxEvtHandler*, void
(wxEvtHandler::*)(wxEvent&), wxEvent&) cons)
[6] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
[7] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[8] wxEvtHandler::ProcessEvent(wxEvent&)
[9] wxEvtHandler::ProcessEvent(wxEvent&)
[10] wxWindowBase::TryParent(wxEvent&)
[11] wxEvtHandler::ProcessEvent(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)
[14] wxGenericTreeCtrl::OnMouse(wxMouseEvent&)
[15] wxAppConsole::HandleEvent(wxEvtHandler*, void
(wxEvtHandler::*)(wxEvent&), wxEvent&) cons)
[16] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
[17] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[18] wxEvtHandler::ProcessEvent(wxEvent&)
[19] wxEvtHandler::ProcessEvent(wxEvent&)
[20] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)
[21] wxWindow::GTKProcessEvent(wxEvent&) cons)
[22] g_closure_invoke()
[23] g_signal_emit_valist()
[24] g_signal_emit()
[25] gtk_propagate_event()
[26] gtk_main_do_event()
[27] g_main_context_dispatch()
[28] g_main_loop_run()
[29] gtk_main()
[30] wxEventLoop::Run()
[31] wxAppBase::MainLoop()
After recompilation pgAdmin and wxWidget I can debug simple functions
without problems (with one assert). With two parameters function pgadmin
hangs before showing window with procedure params.
(gdb) backtrace
#0 0x0012d402 in __kernel_vsyscall ()
#1 0x00f4d206 in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib/libpthread.so.0
#2 0x00ab5c0f in wxConditionInternal::Wait (this=0xa6ad7c0) at ./src/unix/threadpsx.cpp:379
#3 0x00ab5cd7 in wxCondition::Wait (this=0xa6ad78c) at ./include/wx/thrimpl.cpp:248
#4 0x00ab6c3c in wxSemaphoreInternal::Wait (this=0xa6ad788) at ./src/unix/threadpsx.cpp:511
#5 0x00ab6d3b in wxSemaphore::Wait (this=0xa6ad65c) at ./include/wx/thrimpl.cpp:304
#6 0x080d914b in dbgPgThread::Entry (this=0xa6ad648) at ./debugger/dbgPgThread.cpp:106
#7 0x00ab7dce in wxThreadInternal::PthreadStart (thread=0xa6ad648) at ./src/unix/threadpsx.cpp:766
#8 0x00ab7f39 in wxPthreadStart (ptr=0xa6ad648) at ./src/unix/threadpsx.cpp:718
#9 0x00f4944b in start_thread () from /lib/libpthread.so.0
#10 0x0102c80e in clone () from /lib/libc.so.6
CREATE OR REPLACE FUNCTION f3(character varying, boolean) RETURNS boolean AS
' begin return false; end ' LANGUAGE 'plpgsql' VOLATILE COST 100;
ALTER FUNCTION f3(character varying, boolean) OWNER TO postgres;
Regards
Pavel Stehule