0.8.28
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Thu, 9 Mar 2006 19:59:14 +0000 (19:59 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Thu, 9 Mar 2006 19:59:14 +0000 (19:59 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@1631 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/ChangeLog
ltt/branches/poly/configure.in
ltt/branches/poly/facilities/Makefile.am
ltt/branches/poly/facilities/kernel_arch_i386.xml
ltt/branches/poly/facilities/statedump.xml
ltt/branches/poly/lttv/lttv/state.c
ltt/branches/poly/lttv/lttv/state.h

index 0175fcaf3cd5f8adf38e1141dcb2361e288d79ea..d045b1b1bb97a973578ed2c6bd1f5c0be97c78a3 100644 (file)
@@ -1,5 +1,9 @@
 LinuxTraceToolkit ChangeLog
 
+09/03/2006     LTTV 0.8.28
+                                               Add usertrace support.
+                                               Bugfix : handle badly number syscall xml correctly.
+                                               Add network_ip_interface XML.
 05/03/2006     LTTV 0.8.26
                                                Add mouse scroll support.
                                                Add user_generic.xml facility.
index 73f88761326a840b945bb569d70e64a74b314985..a3aa1a89cc83dd4b0f6879c1518c77699d4275e0 100644 (file)
@@ -23,7 +23,7 @@
 AC_PREREQ(2.57)
 AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
 #AC_WITH_LTDL  # not needed ?
-AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.27-05032006)
+AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.28-09032006)
 AM_CONFIG_HEADER(config.h)
 AM_PROG_LIBTOOL
 
index c5e6f0db99c53509a44a35de5554cc0551393d74..6e87ebdc4bbaf5893b9a70fa1854cb320cedff5b 100644 (file)
@@ -15,7 +15,8 @@ process.xml \
 socket.xml \
 statedump.xml \
 timer.xml \
-user_generic.xml
+user_generic.xml \
+network_ip_interface.xml
 
 facilities_DATA = \
 core.xml \
@@ -33,7 +34,8 @@ process.xml \
 socket.xml \
 statedump.xml \
 timer.xml \
-user_generic.xml
+user_generic.xml \
+network_ip_interface.xml
 
 
 facilitiesdir = $(pkgdatadir)/facilities
index 3498181b1c95602f2f09440fdaed1b8f88b58715..92639bc489281985c6b6e8e6e68609861afdc976 100644 (file)
                        <label name=inotify_init value=291/>
                        <label name=inotify_add_watch value=292/>
                        <label name=inotify_rm_watch value=293/>
+                       <label name=ltt_trace_generic value=294/>
+                       <label name=ltt_register_generic value=295/>
     </enum>
   </type>
 
index 7f757d93bb69245d06a5cec4431fc57f44897ecd..a15f3d8b0958556f780c57c2874feed482374175 100644 (file)
     </enum>
   </type>
 
+       <type name=interface_state>
+               <enum>
+      <label name=UP value=0/> <description></description>
+      <label name=DOWN value=1/> <description></description>
+               </enum>
+       </type>
+
   <event name=enumerate_file_descriptors>
     <description>List of open file descriptors</description>
       <field name="name"><description>File name</description><string/></field>
       <field name="status"> <description>Process status</description> <typeref name=process_status/> </field>
   </event>
 
+  <event name=enumerate_network_ip_interface>
+    <description>List of each IP interface up</description>
+      <field name="name"> <description>Interface name</description><string/></field>
+      <field name="addr"> <description>IP address</description> <uint size=4 network/> </field>
+                       <field name="status"> <description>Status of the interface</description> <typeref name=interface_state/> </field>
+  </event>  
+  
   <event name=statedump_end>
     <description>Kernel state dump complete</description>
   </event>
index efbd2ed6c52f353a47b6ff3232cef8c42797876f..a9d371a50924ff20237b4b75f3489673f1ef72fe 100644 (file)
@@ -799,6 +799,7 @@ free_max_time(LttvTraceState *tcs)
 typedef struct _LttvNameTables {
  // FIXME  GQuark *eventtype_names;
   GQuark *syscall_names;
+       guint nb_syscalls;
   GQuark *trap_names;
   GQuark *irq_names;
   GQuark *soft_irq_names;
@@ -856,6 +857,7 @@ create_name_tables(LttvTraceState *tcs)
   lttv_trace_hook_destroy(&h);
 
   name_tables->syscall_names = g_new(GQuark, nb);
+  name_tables->nb_syscalls = nb;
 
   for(i = 0 ; i < nb ; i++) {
     name_tables->syscall_names[i] = ltt_enum_string_get(t, i);
@@ -951,6 +953,7 @@ get_name_tables(LttvTraceState *tcs)
   name_tables = (LttvNameTables *)*(v.v_pointer);
   //tcs->eventtype_names = name_tables->eventtype_names;
   tcs->syscall_names = name_tables->syscall_names;
+  tcs->nb_syscalls = name_tables->nb_syscalls;
   tcs->trap_names = name_tables->trap_names;
   tcs->irq_names = name_tables->irq_names;
   tcs->soft_irq_names = name_tables->soft_irq_names;
@@ -1254,8 +1257,19 @@ static gboolean syscall_entry(void *hook_data, void *call_data)
 
   LttvExecutionSubmode submode;
 
-  submode = ((LttvTraceState *)(s->parent.t_context))->syscall_names[
-      ltt_event_get_unsigned(e, f)];
+       guint nb_syscalls = ((LttvTraceState *)(s->parent.t_context))->nb_syscalls;
+       guint syscall = ltt_event_get_unsigned(e, f);
+       
+       if(syscall < nb_syscalls) {
+         submode = ((LttvTraceState *)(s->parent.t_context))->syscall_names[
+           syscall];
+       } else {
+               /* Fixup an incomplete syscall table */
+               GString *string = g_string_new("");
+    g_string_printf(string, "syscall %u", syscall);
+               submode = g_quark_from_string(string->str);
+               g_string_free(string, TRUE);
+       }
   push_state(s, LTTV_STATE_SYSCALL, submode);
   return FALSE;
 }
index dbd197eae00204ee5fd20763a684057f2294917b..f374db2028cf41c4955e9393182386c9236a0e92 100644 (file)
@@ -265,6 +265,7 @@ struct _LttvTraceState {
   /* Block/char devices, locks, memory pages... */
   GQuark *eventtype_names;
   GQuark *syscall_names;
+       guint  nb_syscalls;
   GQuark *trap_names;
   GQuark *irq_names;
   GQuark *soft_irq_names;
This page took 0.029209 seconds and 4 git commands to generate.