2012-03-06 54 views
0

是否有人可以幫我這個堆棧跟蹤的interpreatation:應用程序堆棧跟蹤解釋MDB

 Loading modules: [ libumem.so.1 libc.so.1 libuutil.so.1 ld.so.1 ] 
     > $c 
     libc.so.1`strlen+0xc(80b37ba, fe679d2c, fe679d00, 0) 
     libc.so.1`snprintf+0x74(fe67d970, 1388, 80b37b8, efef9f68, 80b379d, fe679e30) 
     > 80b37ba::whatis 
     80b37ba is unknown 
     > fe679d2c::whatis 
     fe679d2c is unknown 
     > fe679d00::whatis 
     fe679d00 is unknown 

strlen函數得到一個說法,但是在這個堆棧跟蹤我看到3個地址?他們的含義是什麼?

關於

回答

1

調試器無法解釋它的大部分內容。

調試器可能不知道的功能多少參數得到。所以它打印更多。但是你可以忽略額外的參數。

確實有意義的零件顯示snprintf被調用,然後調用strlen。這可能是由於格式字符串中的%sstrlen參數相似(不完全相同,我不知道爲什麼),以snprintf的第三個參數。
所以可能是一些代碼做類似snprintf("%d %s\n", number, string)
你可以在fe67d970找到實際的格式字符串,它可能會讓你識別誰叫它(除非你在任何地方使用相同的格式字符串)。