bugpoint - manual referensi, opsi, contoh perintah


NAMA

bugpoint - alat reduksi test case otomatis

RINGKASAN

bugpoint [options] [input LLVM ll/bc files] [LLVM passes] --args program arguments

KETERANGAN

bugpoint mempersempit sumber masalah pada alat dan penerusan LLVM. Ini dapat digunakan untuk men-debug tiga jenis kegagalan: pengoptimal mogok, kesalahan kompilasi oleh pengoptimal, atau pembuatan kode asli yang buruk (termasuk masalah dalam kompiler statis dan JIT). Ini bertujuan untuk mengurangi kasus uji besar menjadi kecil, yang berguna. Untuk informasi selengkapnya tentang desain dan cara kerja bagian dalam bugpoint, serta saran untuk menggunakan bugpoint, lihat Alat bugpoint LLVM: desain dan penggunaan di distribusi LLVM.

PILIHAN

--additional-so library

Muat perpustakaan objek bersama dinamis ke dalam program pengujian setiap kali dijalankan. Ini berguna jika Anda men-debug program yang bergantung pada pustaka non-LLVM (seperti pustaka X atau kutukan) untuk dijalankan.

--append-exit-code={true,false}

Tambahkan kode keluar program uji ke file keluaran sehingga perubahan kode keluar dianggap sebagai kegagalan uji. Default ke false.

--args program args

Teruskan semua argumen yang ditentukan setelah --args ke program pengujian setiap kali dijalankan. Perhatikan bahwa jika salah satu dari perdebatan program dimulai dengan "-", Anda harus menggunakan:

bugpoint [bugpoint args] --args -- [program args]

"--" tepat setelah opsi --args memberi tahu bugpoint untuk mempertimbangkan opsi apa pun yang dimulai dengan "- " untuk menjadi bagian dari opsi --args, bukan sebagai opsi untuk bugpoint itu sendiri.

--tool-args tool args

Teruskan semua argumen yang ditentukan setelah --tool-args ke alat LLVM yang sedang diuji (llc, lli, dll.) setiap kali dijalankan. Anda harus menggunakan opsi ini dengan cara berikut:

bugpoint [bugpoint args] --tool-args -- [tool args]

"--" tepat setelah opsi --tool-args memberi tahu bugpoint untuk mempertimbangkan opsi apa pun yang dimulai dengan "-" untuk menjadi bagian dari opsi --tool-args, bukan sebagai opsi untuk bugpoint itu sendiri. (Lihat --args, di atas.)

--safe-tool-args tool args

Teruskan semua argumen yang ditentukan setelah --safe-tool-args ke alat eksekusi "safe".

--gcc-tool-args gcc tool args

Teruskan semua argumen yang ditentukan setelah --gcc-tool-args ke pemanggilan gcc.

--opt-args opt args

Teruskan semua argumen yang ditentukan setelah --opt-args ke pemanggilan opt.

--disable-{dce,simplifycfg}

Jangan jalankan lintasan yang ditentukan untuk membersihkan dan mengurangi ukuran program pengujian. Secara default, bugpoint menggunakan pass ini secara internal saat mencoba mengurangi program pengujian. Jika Anda mencoba menemukan bug di salah satu pass ini, bugpoint mungkin macet.

--enable-valgrind

Gunakan valgrind untuk menemukan kesalahan dalam fase pengoptimalan. Ini akan memungkinkan bugpoint untuk menemukan masalah tanpa gejala yang disebabkan oleh kesalahan manajemen memori.

-find-bugs

Terus mengacak pass yang ditentukan dan menjalankannya pada program pengujian hingga bug ditemukan atau pengguna menghentikan bugpoint.

-help

Cetak ringkasan opsi baris perintah.

--input filename

Buka namafile dan alihkan masukan standar dari program pengujian, setiap kali dijalankan, untuk berasal dari file tersebut.

--load plugin

Muat plugin objek dinamis ke bugpoint itu sendiri. Objek ini harus mendaftarkan pass pengoptimalan baru. Setelah dimuat, objek akan menambahkan opsi baris perintah baru untuk mengaktifkan berbagai pengoptimalan. Untuk melihat daftar lengkap pengoptimalan yang baru, gunakan opsi -help dan --load bersamaan; Misalnya:

bugpoint --load myNewPass.so -help
--mlimit megabytes

Menentukan batas atas penggunaan memori pengoptimalan dan codegen. Setel ke nol untuk menonaktifkan batas.

--output filename

Setiap kali program pengujian menghasilkan keluaran pada aliran keluaran standarnya, ia harus cocok dengan konten namaberkas ("keluaran referensi"). Jika Anda tidak menggunakan opsi ini, bugpoint akan berusaha menghasilkan output referensi dengan mengompilasi program dengan backend "aman" dan menjalankannya.

--run-{int,jit,llc,custom}

Setiap kali program pengujian dikompilasi, bugpoint harus membuat kode untuknya menggunakan pembuat kode yang ditentukan. Opsi ini memungkinkan Anda memilih juru bahasa, kompiler JIT, kompiler kode asli statis, atau perintah khusus (lihat --exec-command) masing-masing.

--safe-{llc,custom}

Saat men-debug pembuat kode, bugpoint harus menggunakan pembuat kode yang ditentukan sebagai pembuat kode "aman". Ini adalah generator kode yang dikenal baik yang digunakan untuk menghasilkan "output referensi" jika belum disediakan, dan untuk mengkompilasi bagian dari program yang dikecualikan dari testcase. Opsi ini memungkinkan Anda untuk memilih masing-masing kompiler kode asli statis, atau perintah khusus, (lihat --exec-command). Penerjemah dan backend JIT saat ini tidak dapat digunakan sebagai backend "aman".

--exec-command command

Opsi ini menentukan perintah untuk digunakan dengan opsi --run-custom dan --safe-custom untuk menjalankan kasus uji bitcode. Ini dapat berguna untuk kompilasi silang.

--compile-command command

Opsi ini menentukan perintah untuk digunakan dengan opsi --compile-custom untuk mengompilasi testcase bitcode. Perintah harus keluar dengan kode keluar yang gagal jika file "menarik" dan harus keluar dengan kode keluar yang berhasil (mis. 0) jika tidak (ini sama seperti jika macet pada input "menarik").

Ini dapat berguna untuk menguji keluaran kompiler tanpa menjalankan tautan apa pun atau menjalankan tahapan. Untuk menghasilkan pengujian unit yang dikurangi, Anda dapat menambahkan arahan CHECK ke kasus pengujian dan meneruskan nama skrip perintah kompilasi yang dapat dieksekusi dalam formulir ini:

#!/bin/sh
llc "$@"
not FileCheck [bugpoint input file].ll < bugpoint-test-program.s

Skrip ini akan "gagal" selama FileCheck lolos. Jadi hasilnya adalah bitcode minimum yang lolos FileCheck.

--safe-path path

Opsi ini menentukan jalur ke perintah untuk dieksekusi dengan opsi --safe-{int,jit,llc,custom}.

--verbose-errors={true,false}

Perilaku default bugpoint adalah untuk mencetak "" ketika menemukan tes yang dikurangi yang membuat crash kompilasi. Bendera ini mencetak output dari program yang mogok ke stderr. Ini berguna untuk memastikan itu adalah kesalahan yang sama yang dilacak dan bukan kesalahan berbeda yang juga menyebabkan crash kompiler. Default ke false.

STATUS KELUAR

Jika bugpoint berhasil menemukan masalah, itu akan keluar dengan 0. Sebaliknya, jika terjadi kesalahan, itu akan keluar dengan nilai bukan nol.

LIHAT JUGA

opt(1)

PENGARANG

Dikelola oleh Tim LLVM (https://llvm.org/).

HAK CIPTA

2003-2023, Proyek LLVM