\chapter{Commonly encountered problems} \label{sec:trouble} In this chapter we list a number of commonly encountered problems in using PCE/Prolog. \begin{description} \tick{Cannot open display} PCE tries to open the display from the address specified by the DISPLAY environment variable. It ignores the `--display' command line option. The display might also be specified explicitly using `display <->address'. PCE will open the display as soon as it needs X-resource values or it needs graphical operations. This will fail if the specified address is not legal, there is no X-server at that address or the X-server denies the access. Examine the error message carefully. Make sure X-windows is running at the specified address. Make sure you have access to this server. See \idx{xauth} (when running \idx{MIT_MAGIC_COOKIE}) and \idx {xhost}. If PCE still complains, validate the access rights by starting a normal X-application (e.g.\ xterm) in the same context. Always restart PCE after a fatal or system error as the system might be corrupted. This problem is not possible in the Win32 implementation. \tick{Bad integer reference} This is a PCE/Prolog interface warning. It implies the integer object reference given to send/[2-12], etc.\ is not valid. The most common reason is that the object has already be freed, either explicitly or by PCE's incremental garbage collector. See \secref{memory}. \tick{Unknown class} Attempt to create an instance of a non-existing class. Apart from the common mistakes like mistyped class-names, etc.\ this might be caused by 1) giving a list argument to a send- or get- operation (class `.') or 2) trying to pass a term through send/[2-12] or get/[3-13]. See \secref{notprolog}. \tick{Illegal PCE object description} This implies a non-translatable Prolog datum was passed to the interface. Normally this will be a non-ground% \footnote{A `ground' term is a Prolog term that has no unbound variables.} argument to new/2, send/[2-12] or get/[3-13]. \end{description}