2013-11-27 42 views
0

對於函數func()中的以下語句,我試圖找出變量名稱(這是示例中的「字典」),指向malloc的內存區域。將賦值的左側變量與右側函數調用的返回值匹配

Void func() { 
    uint64_t * dictionary = (uint64_t *) malloc (sizeof(uint64_t) * 128); 
} 

裝有儀表的malloc()可以記錄分配的開始地址和大小。然而,沒有變量'字典'的知識將被分配給編譯器端的任何功能可以幫助解決這個問題,而不需要修改編譯器來處理這樣的賦值語句?

我一直在想的一個方法是使用變量'dictionary'和函數'malloc'在一個源代碼行上或彼此相鄰的特性,矮人提供了行信息。

回答

0

你可以用Clang和LLVM做的一件事是用調試信息發出代碼,然後尋找malloc調用。這些將被分配給LLVM值,可以通過調試信息元數據追蹤(如果沒有進行優化編譯,那就是)到原始C/C++源代碼。

相關問題