Saya mencoba untuk bekerja dengan memulai oprofile , dan saya mengalami masalah pada langkah ini:
opcontrol --vmlinux=/path/to/vmlinux
Ubuntu tidak memiliki paket yang disebut vmlinux, dan ketika saya melakukan locate vmlinux
, saya mendapatkan banyak file:
/usr/src/linux-headers-2.6.28-14/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-14/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-15/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-15/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-16/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-16/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/include/asm-generic/vmlinux.lds.h
Yang mana dari yang ini yang saya cari?
vmlinuz
dengannya membutuhkan kernel yang tidak terkompresi.Cara termudah (dan non-hacky) untuk mendapatkan di
vmlinux
bawah Ubuntu adalah menambahkan repositori ddebs :dan instal simbol debug kernel:
vmlinux
maka dapat ditemukan di sini:sumber
Hm, hanya ingin menempatkan ini sebagai komentar pada jawaban di atas oleh @paxdiablo, tetapi tidak dapat menemukan tombol komentar? Bagaimanapun ..
Masalahnya adalah bahwa
vmlinuz
file dikompresi - dan untuk tujuan debugging, Anda memerlukan yang tidak terkompresivmlinux
(dan lebih disukai yang dibangun dengan simbol debugging - yang default-nyavmlinuz
datang dengan Ubuntu tidak miliki, karena mereka dilucuti simbol).Sekarang, dimungkinkan untuk membongkar file
vmlinuz
ke dalamvmlinux
file - namun, itu tidak sepele; pertama Anda harus menemukan byte offset divmlinuz
mana file terkompresi dimulai, dan kemudian gunakandd
danzcat
untuk membongkar hanya bagian yang diperlukan. Secara rinci, ini dijelaskan dalam: " [ubuntu] Bagaimana cara melacak bug ini? - Forum Ubuntu - posting # 4 "; secara singkat, di bawah ini adalah contoh log perintah terminal saya, berdasarkan posting itu:Yah, semoga ini membantu,
Bersulang!
sumber
extract-vmlinux
: git.kernel.org/?p=linux/kernel/git/torvalds/…Anda dapat mengunduh sumber dan kompilasi sendiri menggunakan perintah berikut:
atau Anda dapat mengunduh paket ddeb di sini dan menginstalnya dengan
sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb
sumber
Ini adalah pertanyaan lama, dan jawaban lama tidak berfungsi lagi untuk saya (ubuntu 14.04).
Pertama-tama,
vmlinux
adalah opsional untukoprofile
, Anda hanya perlu untuk menunjukkan apa yang terjadi di dalam kernel, pembuatan profil ruang-pengguna dapat dilakukan tanpa itu. Baca lebih lanjut di dokumen .Jika Anda masih membutuhkan
vmlinux
, tambahkan repositori ddebs (tanpa malu-malu diambil dari wiki ubuntu ):Kemudian instal simbol debug untuk kernel Anda . Anda harus melakukan ini setiap kali Anda memutakhirkan kernel Anda, setelah reboot jadi
uname
mendapatkan versi kernel yang tepat. Jangan ragu untuk menghapus paket yang terkait dengan kernel lama.Setelah paket ini diinstal, Anda akan menemukan
vmlinux
file di sini :sumber
Lihat https://bugs.launchpad.net/ubuntu/+source/linux/+bug/289087
sumber
Paket yang berisi kernel linux (file vmlinuz) disebut linux-image-VERSION-ARCH di Debian / Ubuntu.
Anda dapat mencantumkannya dengan perintah
dpkg -l linux-image-*
, dan untuk paket yang diinstal (ii
ditandai di kolom pertama), Anda dapat memperoleh daftar file di dalamnyadpkg -L linux-image-VERSION-ARCH
, misalnyadpkg -L linux-image-2.6.31-17-386
untuk pemasangan Karmic baru-baru ini.Perhatikan bahwa
l
huruf kecil di perintah pertama dan huruf besar di detik.sumber
Coba perintah berikut:
biasanya vmlinux menempatkan di / usr / lib / debug / setelah instalasi
sumber
itu harus di root Anda (/). Di ubuntu 8.10 itu adalah tautan yang menunjuk ke /boot/vmlinuz-2.6.28-16-generic
lakukan
kamu harus menemukannya
PS: tidak yakin nama path yang tepat.
sumber