Sono disponibili
i seguenti messaggi di debug per facilitare la comprensione dell'esecuzione dei
nodi e dei programmi di analisi definiti dall'utente:
- BIP2233 e BIP2234: una coppia di messaggi
di cui si tiene traccia prima e dopo il richiamo di una funzione di implementazione dell'estensione
definita dall'utente. Questi messaggi riportano i parametri di input ed il valore restituito.
Ad esempio:
BIP2233 Invoking user-defined extension
function [function name] ([function call parameters])
BIP2234 Returned
from user-defined extension function [function name] with result: [result
of call]Nota: in questi messaggi, una funzione di implementazione può
essere interpretata come una funzione di implementazione C o un metodo di implementazione
Java.
BIP2308: un messaggio riportato nel registro quando il
broker non riesce a caricare il file LIL.BIP2308 Il file [nome del file
LIL] non può essere caricato; il codice di restituzione del sistema operativo [codice di errore restituito dal sistema operativo]

- BIP3904: un messaggio di cui viene eseguita la traccia prima di richiamare il
metodo evaluate() Java di un nodo definito dall'utente. Ad esempio:
BIP3904 (per
Java): richiamo del metodo evaluate() del nodo (class=[node class name], name=[label
of node in flow]) dove node class name è il
nome della classe Java dell'estensione definita dall'utente.
- BIP3905: un messaggio di cui viene eseguita la traccia prima di richiamare
la funzione di implementazione C cniEvaluate (membro iFpEvaluate
di CNI_VFT) di un nodo definito dall'utente. Ad esempio:
BIP3905 (per
C): richiamo della funzione di implementazione cniEvaluate() del nodo (class=[node
class name], name=[label of node in flow]) dove node class
name è il nome della classe dell'estensione definita dall'utente fornito
dall'estensione definita dall'utente durante la chiamata a cniDefineNodeClass di C.
- BIP4142: un messaggio di debug di cui viene eseguita la traccia quando si
richiama una funzione di utilità del nodo definito dall'utente e la funzione di utilità altera lo stato di un elemento della sintassi. Ciò include tutte le funzioni di utilità che iniziano
con cniSetElement*, dove * rappresenta tutti i nodi con tale
radice. Ad esempio:
BIP4142 Evaluating cniSetElement
[element identifier type]. Changing value from [value before user's change]
to [value after user's change]"
- BIP4144 e BIP4145: una coppia di messaggi
di cui viene eseguita la traccia da certe funzioni di implementazione che, quando vengono
richiamate da un'estensione definita dall'utente, possono modificare lo stato interno di un oggetto
del broker dei messaggi. Possibili oggetti del broker dei messaggi includono l'elemento della sintassi, il nodo e
il programma di analisi. Questi messaggi riportano il parametro di input fornito al metodo
richiamato ed il valore restituito. Ad esempio:
BIP4144 Entered
function [function name] ([function call parameters])
BIP4145 Exiting
function [function name] with result: [result to be returned]
in questi messaggi, una funzione di implementazione può
essere interpretata come una funzione di implementazione C o un metodo di implementazione
Java.
Le
funzioni di implementazione C che richiamano i messaggi BIP4144 e BIP4145 includono:
Per programmi di analisi definiti dall'utente |
Per nodi definiti dall'utente |
cpiCreateParserFactory |
cniCreateElement* |
cpiDefineParserClass |
cniDeleteMessage |
cpiAppendToBuffer |
cniAdd* |
cpiCreateElement |
cniDetach |
cpiCreateAndInitializeElement |
cniCopyElementTree |
cpiAddBefore |
cniFinalize |
cpiAddAfter |
cniWriteBuffer |
cpiAddAsFirstChild |
cniSql* |
cpiAddAsLastChild |
cniSetInputBuffer |
cpiSetNameFromBuffer |
cniDispatchThread |
(* rappresenta tutti i nodi con quella radice; ad esempio, cniAdd* include
cniAddAfter, cniAddasFirstChild, cniAddasLastChild e cniAddBefore.)
I
metodi Java che richiamano messaggi BIP4144 e BIP4145 sono:
Per nodi definiti dall'utente |
com.ibm.broker.plugin.MbElement.CreateElement* |
com.ibm.broker.plugin.MbElement.add* |
com.ibm.broker.plugin.MbElement.detach |
com.ibm.broker.plugin.MbElement.copyElementTree |
- BIP4146: un messaggio di debug di cui viene eseguita la traccia quando si
richiama una funzione di utilità del programma di analisi definito dall'utente e la funzione di utilità altera lo stato di un elemento della sintassi. Ciò include tutte le funzioni di utilità che iniziano
con cpiSetElement*, dove * rappresenta tutti i nodi con tale
radice. Ad esempio:
BIP4146 Evaluating cpiSetElement
[element identifier type]. Changing value from [value before user's change]
to [value after user's change]
Per informazioni sull'API definita dall'utente
C, consultare le sezioni API del programma di analisi definito dall'utente in linguaggio C e API del nodo definito dall'utente in linguaggio C.
- BIP4147: un messaggio di errore di cui viene eseguita la traccia quando un'estensione
definita dall'utente passa un oggetto input non valido ad una funzione API di utilità dell'estensione
definita dall'utente. Ad esempio:
BIP4147 User-defined
extension input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] is not a valid object.
- BIP4148: un messaggio di errore di cui viene eseguita la traccia quando un'estensione definita dall'utente
danneggia un oggetto del broker. Ad esempio:
BIP4148 L'estensione definita dall'utente
ha danneggiato l'oggetto del broker. La funzione [Nome funzione] ha danneggiato l'oggetto del broker passato come parametro [Nome parametro].
- BIP4149: un messaggio di errore di cui viene eseguita la traccia quando un'estensione
definita dall'utente passa un puntatore dati di input non valido ad una funzione API di utilità dell'estensione
definita dall'utente. Ad esempio:
BIP4149 User-defined
extension input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] is a NULL pointer.
- BIP4150: un messaggio di errore di cui viene eseguita la traccia quando un'estensione
definita dall'utente passa dati di input non validi ad una funzione API di utilità dell'estensione
definita dall'utente. Ad esempio:
BIP4150 User-defined extension
input parameter failed debug validation check. Input parameter [parameter
name] passed into function [function name] does not have a valid value.
- BIP4151: un messaggio di debug di cui viene eseguita la traccia quando cniGetAttribute2 o cniGetAttributeName2 imposta
il codice di ritorno su un valore imprevisto. Valori previsti sono CCI_SUCCESS, CCI_ATTRIBUTE_UNKNOWN
e CCI_BUFFER_TOO_SMALL. Qualsiasi altro valore è un valore imprevisto. Ad esempio:
BIP4151 An
unexpected value was returned from User-defined extension implementation function
[function name].
- BIP4152: un messaggio di debug di cui viene eseguita la traccia quando cniGetAttribute2 o cniGetAttributeName2 imposta
il codice di ritorno su CCI_BUFFER_TOO_SMALL e quindi cniGetAttribute2 o cniGetAttributeName2 viene
chiamato nuovamente, questa volta con il buffer della dimensione corretta, tuttavia il codice di ritorno
è ancora impostato su CCI_BUFFER_TOO_SMALL. Ad esempio:
BIP4152 User-defined
extension Implementation function [function name] returned CCI_BUFFER_TOO_SMALL
on 2nd attempt.