octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #61821] segfault using tree_parameter_list in


From: anonymous
Subject: [Octave-bug-tracker] [bug #61821] segfault using tree_parameter_list in oct file
Date: Thu, 24 Feb 2022 14:16:20 -0500 (EST)

Follow-up Comment #19, bug #61821 (project octave):

It may be useful to use gdb to print the layout of the classes
"octave_user_function" and "octave_user_code" when time_t is 64 bit.
"time_t" is used in class "octave::sys::time". "octave_user_code" has two
members "m_t_parsed" and "m_t_checked" of type "octave::sys::time".
There is another macro _USE_32BIT_TIME_T that can be used to change the type
of time_t.


(gdb)  ptype /o 'octave_user_function'
/* offset      |    size */  type = class octave_user_function : public
octave_user_code {
                             private:
/*    208      |       4 */    octave::tree_parameter_list *m_param_list;
/*    212      |       4 */    octave::tree_parameter_list *m_ret_list;
/*    216      |       4 */    octave::comment_list *m_lead_comm;
/*    220      |       4 */    octave::comment_list *m_trail_comm;
/*    224      |       4 */    int m_location_line;
/*    228      |       4 */    int m_location_column;
/*    232      |       4 */    int m_end_location_line;
/*    236      |       4 */    int m_end_location_column;
/*    240      |       1 */    bool m_system_fcn_file;
/* XXX  3-byte hole      */
/*    244      |       4 */    int m_num_named_args;
/*    248      |       1 */    bool m_subfunction;
/*    249      |       1 */    bool m_inline_function;
/*    250      |       1 */    bool m_anonymous_function;
/*    251      |       1 */    bool m_nested_function;
/*    252      |       4 */    octave_user_function::class_method_type
m_class_constructor;
/*    256      |       4 */    octave_user_function::class_method_type
m_class_method;
                               static int t_id;
                               static const std::string t_name;
                               static const std::string c_name;
/* XXX  4-byte padding   */

                               /* total size (bytes):  264 */
                             }


(gdb)  ptype /o 'octave_user_code'
/* offset      |    size */  type = class octave_user_code : public
octave_function {
                             protected:
/*    132      |       8 */    class octave::symbol_scope {
                                 private:
/*    132      |       8 */        class
std::shared_ptr<octave::symbol_scope_rep>
    [with _Tp = octave::symbol_scope_rep]
        : public std::__shared_ptr<_Tp, (__gnu_cxx::_Lock_policy)2> {

                                       /* total size (bytes):    8 */
                                   } m_rep;

                                   /* total size (bytes):    8 */
                               } m_scope;
/*    140      |      24 */    std::string m_file_name;
/* XXX  4-byte hole      */
/*    168      |      16 */    class octave::sys::time {
                                 private:
/*    168      |       8 */        time_t m_ot_unix_time;
/*    176      |       4 */        long m_ot_usec;
/* XXX  4-byte padding   */

                                   /* total size (bytes):   16 */
                               } m_t_parsed;
/*    184      |      16 */    class octave::sys::time {
                                 private:
/*    184      |       8 */        time_t m_ot_unix_time;
/*    192      |       4 */        long m_ot_usec;
/* XXX  4-byte padding   */

                                   /* total size (bytes):   16 */
                               } m_t_checked;
/*    200      |       4 */    octave::file_info *m_file_info;
/*    204      |       4 */    octave::tree_statement_list *m_cmd_list;

                               /* total size (bytes):  208 */
                             }




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61821>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]