objdump

    2熱度

    1回答

    我正在調查與libgomp鏈接的OpenMP程序的執行流程。它使用#pragma omp parallel for。我已經知道該構建而成,除其他事項外,調用GOMP_parallel功能,這是實現如下: void GOMP_parallel (void (*fn) (void *), void *data, unsigned num_threads, unsigned int f

    0熱度

    1回答

    當我使用-g選項運行gcc時,這使我能夠在使用objdump運行可執行文件時看到一些c代碼。 我有一個程序在#if塊中有一段代碼。當我使用-g運行gcc並運行objdump時,它會顯示不應包含在#if中的c代碼。 例如用下面的C語言代碼: #define ENABLED 0 #if ENABLED startSomething(); #endif 當與gcc -g編譯到star

    0熱度

    1回答

    我實際上記錄了nm和objdump程序。我已經完成objdump,它運作良好,所以我現在正在nm上工作。 我試圖找到符號表,爲了做到這一點我通過節頭表像這樣運行: while (i < elf->e_shnum) { if (shdr[i].sh_type == SHT_SYMTAB) printf("Symbol table found\n"); i++; }

    2熱度

    1回答

    我的理解是,當您使用gcc -g編譯C代碼時,gcc將插入包含對原始源代碼(例如行號)的引用的調試信息。然後其他程序如gdb和objdump可以稍後恢復這些引用。爲了舉例,我們將使用objdump -S,它打印與相應源代碼交錯的組件。 我的目標是將已編譯的二進制文件複製到另一臺計算機,並仍能夠檢索到該調試信息。但是,目前,當我這樣做時,所有的調試信息都會丟失。我不介意複製源文件,但第二臺計算機運行

    3熱度

    1回答

    在以前的GCC版本中,objdump報告的符號偏移量與實際執行代碼時使用的符號偏移量相匹配。例如: $ cat example.c #include <stdio.h> int g_someGlobal = 0; int main() { printf("%d\n", g_someGlobal); return 0; } $ gcc-6 -v ... gc

    1熱度

    1回答

    對於上下文:在運行上的剝離二進制gdb時和當處於對應的二進制正在調試一個debuginfo軟轉的posession,所有的錯位的函數名是由它們各自的非錯位當量從debuginfo軟轉速替換。假設你有一些ELF文件已經被剝離了所有的調試信息,並且你有一個debuginfo rpm對應於其中包含所有調試符號的相同ELF文件。鑑於這些假設,是否有一種快速簡便的方法可以使objdump知道這些調試符號,以

    1熱度

    1回答

    有沒有辦法在objdump中獲得完整的地址? 正在使用的命令是:objdump -d progname 的前導零不正確的。該地址應該如下: 最後三個在地址值是正確的;但是,我非常希望在objdump中顯示完整的地址。

    0熱度

    1回答

    我使用一個Arduino兆2560,其具有AVR Atmega2560芯片。我使用Windows上的庫存Arduino IDE 1.8.4對其進行編程,該庫隨附avr-objdump 2.26和avr-g ++ 4.9.2。 我的程序或多或少有效,但是當試圖檢查生成的程序集時,看起來objdump沒有生成正確的輸出。 執行 avr-objdump -D -S -m avr:6 "arduino_b

    1熱度

    1回答

    793 00010cfc <main>: 794 10cfc: e92d4800 push {fp, lr} 795 10d00: e28db004 add fp, sp, #4 796 10d04: e24dd008 sub sp, sp, #8 797 10d08: e3a03000 mov r3, #0 798 10d0

    -1熱度

    1回答

    從linux中的可執行文件中刪除信息時出現問題。該信息如下: 08048060 <__bss_start-0x100a>: 8048060: 31 db xor %ebx,%ebx 8048062: 53 push %ebx 8048063: bb 75 a2 45 7e mov $0x7e45a275,%ebx 8048068: ff d3 call *%e