symbol-table

    0熱度

    1回答

    我正在嘗試查找可執行文件定義的符號數量。比方說,我們的可執行文件被稱爲「節點」 我我的終端上運行 nm node ,它的輸出了大量的符號。 我已經看過nm的手冊頁,以及https://linux.die.net/man/1/nm,但是我一直沒有找到能簡單地返回符號表中符號數的東西。

    2熱度

    1回答

    我想根據文件的輸入創建一個符號表。 截至目前,我的代碼一行一行地讀取文件,分離令牌,並打印出令牌及其類型。 現在,我必須找到一種方法將這些值(令牌和類型)存儲到符號表中。 我不熟悉C++ 全部。我最初試圖製作一個多維數組,但是這是一個半身像,因爲我不知道文件的行數或標記的數量,我無法動態設置數組的大小。現在,我決定使用矢量矢量。這是我的代碼行: vector< vector<int> > vec(

    0熱度

    1回答

    我無法弄清楚如何返回符號表中大於或等於密鑰的最小密鑰..如果有人可以指向我,因爲我不知道從哪裏開始,這將是很好的方向 public class LinkedListST<Key extends Comparable<Key>, Value> { private Node first; // a helper linked list data type private

    0熱度

    2回答

    比方說,我們有: 在f1.c #include <stdio.h> static int x = 10; void f1() { printf("f1.c : %d\n", x); } 的main.c ​​ 我們將編譯和閱讀兩個ELF文件symboltables(相對ELF和exec ELF。): $> gcc -c *.c $> readelf -s f1.o | gre

    0熱度

    1回答

    對於我的課,我必須寫一個編譯器爲Python的一小集: 這種語言有一個方法 有沒有的功能,所以我'm只處理一個詞法範圍 該Python子集將被轉換爲Java字節碼。 我已經完成了詞法分析和解析樹(使用lex和yacc)。 我一直在代碼生成。 我們使用Gnoloo代碼生成,一個堆棧機器語言。 問題是我不知道如何存儲變量。我知道我必須使用符號表,但我不知道如何填寫它。 我必須存儲變量的值嗎? 如果代碼

    3熱度

    1回答

    假設您不僅有可執行文件,還有源代碼文件。 我的問題是計算正確的堆棧大小正在運行的進程只針對局部變量,返回地址,傳遞參數。我試圖使用由MS開發的VMMap。因爲它可以捕獲系統中分配的內存,並使用堆棧等類別。但是,它還包含警戒頁面,分頁文件等。因此,從VMMap堆棧大小被高估。 我想改變解決問題的方法。我將跟蹤堆棧以使用WinAPI的StackWalker64繪製實際調用樹,並從可執行代碼或源代碼中獲

    -1熱度

    1回答

    我們知道編譯器在詞法分析過程中將符號表中的行號保存在符號表中。我一直在想,是否可以在源代碼分析的其他任何階段保存行號?如果可能的話,那麼何時何地?

    8熱度

    2回答

    模塊包含一個字典以跟蹤其上下文,例如在某個執行點定義的名稱。這本詞典可以通過vars(module)(或module.__dict__)如果module是進口來訪問,或通過對模塊本身的locals內置函數的調用: 更新,並返回來表示當前本地符號表的字典。 但我發現自己有點困惑,當我嘗試從函數訪問當地人字典。腳本只包含以下的輸出是一個空的字典: def list_locals(): pri

    0熱度

    1回答

    閱讀thesequestions後,我正在查找有關如何控制符號解析順序的更多詳細信息。 在我的問題中,我有主要可執行文件exec。 exec動態鏈接到a.so和c.so。 a.so動態鏈接到b.so。 b.so調用函數foo,通常由c.so提供,但在這種情況下也由exec提供。 b.so只適用於c.so的foo的實施。 的情況的圖: exec (foo caller and provider)

    1熱度

    1回答

    對於下面的代碼,我試圖爲每個範圍繪製符號表,範圍是全局的,f1,else和f2,我想知道是否對於f2,x會被認爲是符號表示範圍。此外,沒有在F1(5)使用任一符號表沒有關聯? int x = 3; int f1(int x) { if (x > 4) f1(x-1); else { int x = 1; f2(); } } int f2(