Ini ialah perintah dwarfdump yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
dwarfdump - membuang maklumat nyahpepijat DWARF bagi objek ELF
SINOPSIS
dwarfdump [pilihan] nama fail objek
DESCRIPTION
. dwarfdump perintah mencetak atau menyemak bahagian DWARF seperti yang diminta oleh pilihan tertentu.
Tanpa pilihan (tetapi dengan yang diperlukan nama fail objek ) semua bahagian mencetak (tetapi beberapa
bahagian tidak boleh dicetak secara bebas dengan selamat, jadi bahagian itu hanya dicetak pada offset
di mana bahagian .debug_info merujuk kepada bahagian tersebut).
Mulai Jun 2011 pilihan pencetakan dan pilihan semak adalah saling eksklusif (jika
pilihan menyemak dipilih butiran bahagian tidak dicetak). Apabila kesilapan berlaku
yang ditemui dwarfdump cuba mencetak konteks yang mencukupi supaya seseorang boleh memahami
tepat di mana ralat berada dalam DWARF. Perubahan ini menjadikan pemeriksaan objek sangat besar
fail lebih mudah.
Format ini bertujuan untuk dibaca oleh manusia. Jika skrip adalah untuk menghuraikan output, the -d
pilihan adalah berguna.
Tidak semua bahagian sebenarnya wujud dalam mana-mana fail objek tertentu.
Format mungkin berubah dari keluaran ke keluaran, jadi adalah tidak bijak untuk bergantung terlalu banyak
formatnya.
Maklumat bingkai (.debug_frame dan .eh_frame) sangat bergantung pada ABI/ISA bagi
fail objek. Secara lalai kami menggunakan set generik nama daftar yang mengendalikan sehingga 100
daftar bernama r0-100. Pilihan '-R' menggunakan set nama daftar generik terbina dalam
mengendalikan sehingga 1200 daftar bernama r0-r1199. '-x abi= ' penerangan di bawah menunjukkan
bagaimana untuk menamakan abi dan menggunakannya untuk membimbing pemprosesan -f atau -F. Melainkan cpu untuk
fail objek yang dibuang mempunyai banyak daftar, jangan gunakan -R atau -x abi=generik yang boleh
menjadi lambakan bahagian bingkai secara tidak perlu. Sebaliknya, gunakan abi yang betul (jika wujud dalam
dwarfdump.conf) atau generik seperti -x abi=generik100 atau -x abi=generik500. Untuk mendapatkan
MIPS/IRIX daftar nama dan panggil antara muka bingkai libdwarf versi lama 2 menggunakan
pilihan '-x abi=mips'. Tanpa '-R' atau '-x abi= ' dwarfdump mengabaikan dwarfdump.conf
fail dan menggunakan set generik nama daftar tersusun. Jika tiada nama '-x= ' diberikan,
dwarfdump mencari "./dwarfdump.conf", "$HOME/.dwarfdump.conf", "
prefix>/lib/dwarfdump.conf" dan mengambil yang pertama yang ditemuinya. Jika satu atau lebih '-x name= '
diberi yang terakhir ini digunakan dan semua fail lain diabaikan.
Beberapa pilihan -k (menyemak) mencetak apa yang dipanggil ralat tidak berbahaya. Ini adalah ralat pengkompil
yang tidak menyebabkan sebarang masalah yang diketahui dan hanya dikesan di dalam libdwarf itu sendiri. Ini
sukar untuk dilaporkan dengan betul dalam dwarfdump dan sebarang rentetan ralat mungkin tidak kelihatan rapat
kepada masa ralat itu ditemui.
URI STYLE INPUT STRING
The dan pilihan yang mengambil rentetan nama mencari URI dan menterjemahkannya
Rentetan URI kepada aksara secara lalai (lihat -x, -c , -S, -u). Jadi mana-mana % tunggal
aksara dianggap seolah-olah dua aksara berikut ialah digit heks yang mewakili
mendasari watak sebenar. Pelbagai aksara bermakna bagi shell (seperti bash atau
sh) dan untuk getopt (seperti aksara ruang) Jika terjemahan URI melakukan apa-apa
mencetak sebelum dan selepas terjemahan URI pada output standard, jadi pemeriksaan
baris pertama output akan menunjukkan jika URI melakukan apa-apa. Pilihan sebenar itu sendiri
diandaikan bukan URI. Jadi dalam pilihan '-cS&T' bahagian -c mestilah bukan URI, tetapi
aksara & mungkin menyebabkan isu input jadi '-cS%26T' boleh digunakan sebaliknya. Untuk sebenarnya
masukkan satu % aksara (dalam nama, contohnya), gandakannya kepada %% pada baris arahan.
Pilihan -U (mematikan tafsiran URI) dan -q (menjadikan pencarian jujukan URI senyap)
memberikan kawalan yang lebih baik terhadap tafsiran URI. PP Sebagai contoh, untuk mendapatkan string'a b' buat
rentetan 'a%20b' (di sini petikan (') adalah untuk eksposisi bukan sebahagian daripada rentetan, walaupun petikan
sudah tentu bermasalah pada nama). Daripada melarikan diri " petikan dalam rentetan, taip
%25, seperti dalam
'a "b' harus ditaip 'a%20%25b' Sebarang aksara boleh ditaip dalam gaya URI, bukan hanya
aksara yang bermasalah pada shell atau getopt. Kami amat menyarankan anda untuk tidak menaip
Aksara gaya URI yang tidak diperlukan atau gunakan aksara % itu sendiri dalam arahan
rentetan baris melainkan anda mesti.
PERCETAKAN PILIHAN
-a Cetak setiap bahagian secara bebas yang mungkin. Bahagian yang boleh selamat
dicetak secara bebas (seperti .debug_abbrev) mempunyai maklumat berkaitan yang dicetak dalam laporan
(kadang-kadang bergantung pada -v).
-b Cetak bahagian .debug_abbrev. Kerana spesifikasi DWARF tidak menolak
kawasan data sampah dalam .debug_abbrev (jika ia tidak dirujuk daripada .debug_info)
sebarang bait sampah boleh mengakibatkan cetakan ini gagal.
-c Cetak senarai lokasi.
-f Cetak bahagian .debug_frame.
-F Cetak bahagian .eh_frame.
-i Cetak bahagian .debug_info.
-l Cetak bahagian .debug_info dan data bahagian baris yang berkaitan.
-m Cetak bahagian .debug_macinfo.
-N Cetak bahagian .debug_ranges. Kerana spesifikasi DWARF tidak menolak
kawasan data sampah dalam .debug_ranges (jika ia tidak dirujuk daripada .debug_info)
sebarang bait sampah boleh mengakibatkan cetakan ini gagal.
-p Cetak bahagian .debug_pubnames.
-r Cetak bahagian .debug_aranges.
-s Cetak bahagian .debug_string.
-ta Cetak bahagian IRIX sahaja .debug_static_funcs dan .debug_static_vars.
-tf Cetak bahagian IRIX sahaja .debug_static_funcs.
-tv Cetak bahagian IRIX sahaja .debug_static_vars.
-w Cetak bahagian .debug_weaknames IRIX sahaja.
-y Cetak bahagian .debug_pubtypes (dan .debug_typenames, bahagian SGI IRIX sahaja).
Mempunyai penempatan semula cetakan dwarfdump boleh membantu menentukan sama ada dwarfdump memahami apa-apa
penempatan semula yang mungkin wujud.
-o Cetak semua rekod penempatan semula serta kami boleh uruskan.
-oi Cetak .rel*debug_info relocations.
-ol Cetak .rel*debug_line relocation.
-op Cetak .rel*debug_pubnames relocation.
-oa Tiada kesan.
-Atau Cetak .rel*debug_aranges relocations.
-daripada Cetak .rel*debug_frame relocations.
-oo Cetak .rel*debug_loc relocations.
-oR Cetak .rel*debug_ranges relocations.
-g Biasanya digunakan hanya untuk menguji libdwarf, ini memberitahu dwarfdump untuk mencetak .debug_info
dan gunakan fungsi antara muka dwarf_loclist() yang lebih lama (fungsi yang tidak dapat dikendalikan
semua senarai lokasi semasa).
-V Cetak rentetan tarikh/versi dwarfdump dan berhenti.
SEMAK PILIHAN
-cg Mengehadkan semakan kepada penyusun yang rentetan pengeluarnya bermula dengan 'GNU' dan bertukar
off -cs .
-cs Mengehadkan semakan kepada penyusun yang rentetan pengeluarnya bermula dengan 'SN' dan bertukar
off -cg .
-cname Mengehadkan semakan kepada penyusun yang rentetan pengeluarnya mengandungi 'nama' (bukan case
sensitif). 'Nama' dibaca sebagai rentetan URI.
-ka : Menghidupkan on semua memeriksa pilihan kecuali -kxe (-kxe kekuatan
cukup perlahan jika anda tidak mahu menggunakannya secara rutin.)
-kb : Pemeriksaan khususnya tertentu singkatan seksyen kesilapan apabila membaca
MATI.
-kc Menyemak ralat dalam pemalar dalam debug_info.
-kd Menghidupkan pelaporan penuh jumlah ralat setiap pengeluar. (lalai menunjukkan kurang
terperinci).
-kepada Menghidupkan membaca nama pub dan menyemak ralat fde.
-kf Menghidupkan menyemak ralat FDE.
-kF Menghidupkan menyemak ralat jadual baris.
-kg Menghidupkan semakan untuk jurang yang tidak digunakan dalam .debug_info (jurang ini bukan ralat, cuma
pembaziran ruang).
-ki Menyebabkan ringkasan hasil semakan setiap pengkompil (pengeluar) dicetak di
akhir.
-kl Menghidupkan semakan senarai lokasi.
-km Menghidupkan pemeriksaan julat.
-kM Menghidupkan pemeriksaan aranges.
-kr Menghidupkan pemeriksaan gabungan tag-attr DIE.
-kR Hidupkan membaca DIE dan menyemak pengisytiharan hadapan rom DW_AT_specification
sifat-sifat. (yang bukan ralat tetapi boleh menjadi punca ketidakcekapan untuk
penyahpepijat).
-ks Menghidupkan pelaporan tambahan untuk beberapa pengesanan ralat DIE.
-kS Menghidupkan menyemak rujukan DIE untuk rujukan bulat.
-kt Menghidupkan semakan gabungan teg.
-kx Menghidupkan check_frames.
-kxe Mematikan check_frames asas dan menghidupkan pemeriksaan bingkai lanjutan.
-ky Menghidupkan type_offset, decl_file checking,
OPTION PENGUBAH
-C Biasanya apabila menyemak gabungan teg-teg atau teg-atribut kedua-dua standard
gabungan dan beberapa sambungan biasa dibenarkan. Dengan -C sambungannya ialah
dikeluarkan daripada kelas gabungan yang dibenarkan.
-d Apabila mencetak DIE, letakkan semua atribut untuk setiap DIE pada baris (panjang) yang sama seperti
TAG. Ini menjadikan pencarian maklumat DIE (seperti grep) lebih mudah seperti
keseluruhan DIE berada pada satu baris.
-D Mematikan paparan bahagian mengimbangi dan nilai atribut dalam output bercetak.
Jadi output .debug_info hanyalah TAG dan Atribut. Untuk nama pub (dan seumpamanya)
ia mengeluarkan offset daripada output. Untuk senarai lokasi ia mengalih keluar offset daripada
output, tetapi itu tidak berguna kerana nilai atribut tidak menunjukkan begitu juga
melakukan data lokasi.
-e Menghidupkan pemangkasan nama atribut dan teg. Contohnya DW_TAG_foo menjadi
foo . Tidak serasi dengan pemeriksaan, hanya berguna untuk mencetak DIE.
-G Semasa mencetak, tambahkan offset global pada offset yang dicetak.
-H nombor
Apabila mencetak atau menyemak .debug_info, ini menamatkan carian selepas 'nombor'
unit kompilasi. Apabila mencetak maklumat bingkai ini menamatkan FDE
pelaporan selepas 'nombor' FDE dan pelaporan CIE (yang berlaku jika seseorang menambah -v)
selepas 'nombor' CIE. Contoh '-H 1'
-M Apabila mencetak, ini bermakna seseorang itu ingin menunjukkan FORM untuk setiap atribut. Sekiranya
-v juga ditambah (atau lebih daripada satu) maka butiran sebarang bentuk amaran juga
ditunjukkan.
-n Apabila mencetak bingkai, ini mematikan carian untuk nama fungsi. Dalam benar-benar
objek besar carian boleh mengambil lebih banyak masa daripada seseorang mahu menunggu, jadi ini mengelakkan
pencarian.
-Q Menekan pencetakan data bahagian (ditetapkan secara automatik dengan pilihan semak).
-R Apabila mencetak bingkai untuk ABI dengan banyak daftar, ini membenarkan sehingga 1200
mendaftar untuk dinamakan (seperti R999) tanpa memilih ABI dengan, contohnya '-x
abi=ppc'
-v Meningkatkan butiran yang ditunjukkan semasa mencetak. Dalam sesetengah bahagian, menggunakan lebih banyak pilihan -v
akan meningkatkan butiran (satu hingga tiga berguna) atau mungkin menukar laporan kepada
tunjukkan, sebagai contoh, baris-data-perintah sebenar dan bukannya baris terhasil-
meja.
TERPILIH ENTRY PERCETAKAN
Pilihan -S ini berdiri sendiri dan maklumat cetakan asas tentang unit kompilasi dan
DIE di mana rentetan muncul. Paling banyak satu daripada yang berikut adalah berkesan (jadi untuk
contoh seseorang hanya boleh mempunyai satu 'perlawanan', tetapi seseorang boleh mempunyai 'perlawanan', 'mana-mana' dan
'regex'). Sebarang -S menyebabkan bahagian .debug_info diperiksa. Tiada pilihan menyemak atau
pilihan percetakan hendaklah dibekalkan dengan -S.
-S padan = rentetan
Apabila mencetak DIE untuk setiap nilai teg atau nama atribut yang sepadan dengan 'rentetan'
betul-betul mencetak maklumat unit kompilasi dan mengimbangi bahagiannya. Mana-mana CU dengan
tiada padanan tidak dicetak. 'rentetan' dibaca sebagai rentetan URI.
-S sebarang=rentetan
Apabila mencetak DIE untuk setiap nilai teg atau nama atribut yang mengandungi 'rentetan'
di suatu tempat dalam teg atau atribut (tidak peka huruf besar-kecil) mencetak unit penyusunan
maklumat dan bahagiannya diimbangi. Mana-mana CU tanpa padanan tidak dicetak. The
'rentetan' dibaca sebagai rentetan URI.
-S regex=rentetan
Apabila mencetak DIE untuk setiap nilai teg atau nama atribut yang 'rentetan' biasa
padanan ungkapan mencetak maklumat unit kompilasi dan bahagiannya diimbangi.
Mana-mana CU tanpa padanan tidak dicetak. 'rentetan' dibaca sebagai rentetan URI.
Rentetan tidak boleh mempunyai ruang atau aksara lain yang bermakna getopt(3) dan
cangkerang akan menanggalkan petikan dan aksara lain. Jadi rentetan diandaikan berada di dalam
gaya URI dan diterjemahkan. Dengan kata lain, untuk memadankan 'ab' buat rentetan -S 'a%20b'
Daripada melarikan diri " petikan dalam rentetan, taip %25, seperti dalam
'a "b' hendaklah ditaip 'a%20%25b' (yang ' adalah untuk eksposisi di sini, bukan sebahagian daripada
rentetan). Sebarang aksara boleh ditaip dalam gaya URI, bukan hanya aksara
bermasalah kepada shell atau getopt.
Pilihan -S any= dan -S regex= hanya boleh digunakan jika fungsi perpustakaan yang diperlukan
ditemui pada masa konfigurasi.
Pilihan -W ialah pengubah suai kepada pilihan -S, dan meningkatkan jumlah keluaran -W
cetakan. Sekarang kita menunjukkan -W dalam konteks dengan pilihan -S.
-S padan = rentetan1 -W
Mencetak pokok induk dan pokok kanak-kanak untuk DIE yang -S sepadan.
-S padan = rentetan2 -Wp
Mencetak pepohon induk untuk DIE yang -S sepadan.
-S padan = rentetan3 -Wc
Mencetak pepohon induk untuk DIE yang -S sepadan.
LAIN PILIHAN
-# nombor
Pilihan ini mengawal output penyahpepijatan dalaman, nombor yang lebih tinggi bermakna lebih banyak nyahpepijat
tindakan. Lihat kod sumber.
-x nama=/p/a/t/h.conf
Laluan fail yang diberikan ialah nama fail yang diandaikan sebagai fail seperti dwarfdump.conf.
Laluan fail dibaca sebagai rentetan URI.
-x abi=ppc
Memilih abi (daripada fail dwarfdump.conf) untuk digunakan dalam mencetak bingkai
maklumat (di sini menggunakan ppc sebagai contoh). Abi dibaca sebagai rentetan URI.
-P Apabila menyemak ini menambah senarai nama unit kompilasi yang dilihat untuk setiap pengeluar-
pengkompil kepada hasil semakan yang dicetak.
-q Apabila URI ditemui dan diterjemahkan semasa membaca baris arahan, berdiam diri
terjemahan URI. Iaitu, jangan cetak pilihan asal dan terjemahan
tali.
-E Menghidupkan pencetakan data pengepala dalaman objek untuk sesetengah sistem (untuk Unix/Linux tidak
tiada).
-u cuname
Menghidupkan pencetakan terpilih DIE (pencetakan seperti -i). Hanya MATI untuk a
unit kompilasi yang sepadan dengan nama yang disediakan dicetak. Jika unit kompilasi
ialah ./a/b/cc 'cuname' yang anda berikan hendaklah cc sebagai aksara melalui
pemisah laluan akhir / diabaikan. Jika 'cuname' bermula dengan a / maka keseluruhannya
rentetan nama unit kompilasi mesti sepadan dengan 'cuname'. 'cuname' dibaca sebagai a
rentetan URI.
-U Matikan tafsiran URI bagi rentetan baris arahan sepenuhnya. Mestilah
pada baris arahan sebelum sebarang rentetan URI yang ditemui berkesan sepenuhnya.
-z Tidak lagi disokong.
Gunakan dwarfdump dalam talian menggunakan perkhidmatan onworks.net