Index: uspace/app/taskdump/include/elf.h
===================================================================
--- uspace/app/taskdump/include/elf.h	(revision f0bdfb78d3730a8edaf2b19ec885442689d48b09)
+++ uspace/app/taskdump/include/elf.h	(revision 83349b0356bcc2309b2413d532d34344bdeb028a)
@@ -148,4 +148,9 @@
 #define SHF_MASKPROC		0xf0000000
 
+/** Macros for decomposing elf_symbol.st_info into binging and type */
+#define ELF_ST_BIND(i)		((i) >> 4)
+#define ELF_ST_TYPE(i)		((i) & 0x0f)
+#define ELF_ST_INFO(b, t)	(((b) << 4) + ((t) & 0x0f))
+
 /**
  * Symbol binding
Index: uspace/app/taskdump/symtab.c
===================================================================
--- uspace/app/taskdump/symtab.c	(revision f0bdfb78d3730a8edaf2b19ec885442689d48b09)
+++ uspace/app/taskdump/symtab.c	(revision 83349b0356bcc2309b2413d532d34344bdeb028a)
@@ -206,7 +206,12 @@
 	size_t i;
 	char *sname;
+	unsigned stype;
 
 	for (i = 0; i < st->sym_size / sizeof(elf_symbol_t); ++i) {
 		if (st->sym[i].st_name == 0)
+			continue;
+
+		stype = ELF_ST_TYPE(st->sym[i].st_info);
+		if (stype != STT_OBJECT && stype != STT_FUNC)
 			continue;
 
@@ -240,4 +245,5 @@
 	uintptr_t saddr, best_addr;
 	char *sname, *best_name;
+	unsigned stype;
 
 	best_name = NULL;
@@ -246,4 +252,8 @@
 	for (i = 0; i < st->sym_size / sizeof(elf_symbol_t); ++i) {
 		if (st->sym[i].st_name == 0)
+			continue;
+
+		stype = ELF_ST_TYPE(st->sym[i].st_info);
+		if (stype != STT_OBJECT && stype != STT_FUNC)
 			continue;
 
