Hi My procinfo also segfaults on a machine I run. Apparently there are two problems:
Third field is skipped if it contains "PIC". However interrupts with PCI-MSI-edge does *not* fit this pattern, so I had to change line 449 of procinfo.c from: if ((q = strstr (p, "PIC"))) { to: if ((q = strstr (p, "PIC")) || (q = strstr (p, "PCI"))) { The second problem, which is the reason for the segfault is that my IRQs for two NICs and a SATA controller is way out of range - 1272, 1273 and 1274. However from /proc/stat is found that there are 498 IRQs (nr_irqs). I put in the following two lines at line 459 in procinfo.c, just after the comment: printf("p=%s, i=%d, nr_irqs=%d\n",p, i, nr_irqs); fflush(stdout); I now get when running procinfo (compiled with -g) in gdb: p=i8042, i=1, nr_irqs=498 p=parport0, i=7, nr_irqs=498 p=rtc, i=8, nr_irqs=498 p=acpi, i=9, nr_irqs=498 p=libata, i=17, nr_irqs=498 p=ehci_hcd:usb1, i=18, nr_irqs=498 p=ehci_hcd:usb2, i=23, nr_irqs=498 p=eth1, i=1272, nr_irqs=498 Program received signal SIGSEGV, Segmentation fault. 0x000000000040595e in first_page (sl=5000000) at procinfo.c:461 461 if (irq_label[i][0] == 0) It seems rather clear to me that irq_label is overindexed and the very high IRQ numbers are the reason for the segfault. I have not looked into a robust fix yet, though. Regards /Rasmus -- Rasmus Bøg Hansen MSC Aps Bøgesvinget 8 2740 Skovlunde 44 53 93 66