1) is proto_x2d well initialized ?
2) why use static for your variables ?
3) take the AMIN example and modify it step by step, you will find the 
problem
4) I have no idea


Olivier


Dix, Steven E a écrit :
> I've been trying to get dissector plugin that I'm coding to display
> subtree information that it has parsed.  I can get it to look through
> the tvb buffer and extract the data, but I can't get it to display even
> the top level protocol name beneath the UDP line.  As a debugging aid, I
> dropped in code lifted and slightly modified from the AMIN protocol
> CodeProject web article (link:
> http://www.codeproject.com/KB/IP/custom_dissector.aspx).
>
> I macroed the code so that if macro AMIN is defined, the AMIN code runs.
> Otherwise, my dissector runs.  The AMIN code does display the protocol
> name.  With what looks like an identical proto_tree_add_item call, my
> dissector won't display the protocol name.
>
> I don't understand why the code doesn't work.  I've stepped through it
> in the debugger, and verified that the structure pointed to by the tree
> has a new last_child as a result of the proto_tree_add_item call, and
> its finfo element has reasonable looking contents that match what I
> expected for this protocol.  The tree's last_child appears to be changed
> identically for the AMIN dissector (which works) and for my dissector
> (which doesn't) when I flip the #define AMIN macro to #undef AMIN and
> rebuild the plugin.
>
> I've included a code snippet from the dissector below.
>
> #ifndef AMIN
> static void
> dissect_x2d(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
> {
>       static guint32 packetCounter = 0;
>       static proto_item* x2d_item = NULL;
>       proto_item* x2d_sub_item = NULL;
>       static proto_tree* x2d_tree = NULL;
>       static proto_tree* x2d_header_tree = NULL;
>       ParserNode* topClonePtr = 0;
>
>       ParseInfo* regPtr; /* To retain the result of the parse
> operation */
>
>       guint32 ofst = 0; /* Tracks through tvb */
>       /* Debug only */
> #ifdef DBG
>       if (bailoutPacket <= ++packetCounter)
>       {
>               return;
>       }
> #endif
>       /* Debug only */
>
>       if (check_col(pinfo->cinfo, COL_PROTOCOL))
>       {
>               col_set_str(pinfo->cinfo, COL_PROTOCOL, "x2d");
>       }
>       /* Clear out stuff in the info column */
>       if (check_col(pinfo->cinfo,COL_INFO))
>       {
>               col_clear(pinfo->cinfo,COL_INFO);
>       }
>
>       if (tree)
>       {
>               x2d_item = proto_tree_add_item(tree, proto_x2d, tvb, 0,
> -1, FALSE);
>               return;
>       }
>
> I'd appreciate any help possible on this.
>
>
>
> Steve Dix
> 407-399-5578, Fax 407-249-3599
> [email protected]
>
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <[email protected]>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:[email protected]?subject=unsubscribe
>
>
>   


-- 
Wireshark Generic Dissector http://wsgd.free.fr

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <[email protected]>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:[email protected]?subject=unsubscribe

Reply via email to