  		}
  	}
  	return NULL;
-@@ -112,6 +273,18 @@
+@@ -113,6 +274,18 @@
  	if (!pSyms)
  		return;
  	

 	//TODO skip more symbols based on nl->n_desc and nl->n_type ?
 	return nl;
 }
@@ -139,6 +317,12 @@
 
 const char* dlSymsName(DLSyms* pSyms, int index)
 {

+    strcpy(copy, str);
+    pstr[index] = copy;
+}
 
 DLSyms* dlSymsInit(const char* libPath) 
 {
@@ -71,27 +201,59 @@
 	for (iImage = 0, nImages = _dyld_image_count(); iImage < nImages; iImage++)
 	{
 		const char* name = _dyld_get_image_name(iImage);
