Hello Javier,

Nico Golde was so kind to investigate the segfault problem with cheops-ng. He 
found the solution and provided a patch for the file probe.c . 

As the program runs on a 32 bit computer without the patch this is indeed a 
plattform specific issue.

A big thank you goes to Nico for his excellent work.

With the patch applied the program ran without any problems. The patch file is 
attached.

Best regards,
   Adolf


--- cheops-ng-0.2.3/probe.c	2005-10-17 22:49:42.000000000 +0200
+++ probe.c	2007-02-17 13:46:45.000000000 +0100
@@ -92,27 +92,27 @@
 
 void get_probe_each(gpointer data, gpointer user_data)
 {
-	u32 *args = (u32 *)user_data;
-	u32 port = args[0];
+	u64 *args = (u64 *)user_data;
+	u64 port = args[0];
 	struct probe *p = (struct probe *)data;
 	struct probe **pp = (struct probe **)args[1];
 	
-//	DEBUG(printf("%s()\n", __FUNCTION__));
-	if(*pp == NULL)
+	DEBUG(printf("%s()\n", __FUNCTION__));
+	if(pp && *pp == NULL)
 	{
-		if( p->port == (u16)port)
+		if(p->port == (u16)port)
 			*pp = p;
 	}
 }
 
 struct probe *get_probe(unsigned short port)
 {
-	u32 args[2];
+	u64 args[2];
 	struct probe *p = NULL;
 	
-	DEBUG(printf("%s()\n", __FUNCTION__));
+	//DEBUG(printf("%s()\n", __FUNCTION__));
 	args[0] = port;
-	args[1] = (u32)&p;
+	args[1] = (u64)&p;
 	
 	g_list_foreach(probes, get_probe_each, args);
 	

Reply via email to