Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah cara saya melampirkan pada binari go tersusun silang untuk penyahpepijatan menggunakan Visual Studio Code IDE?

Bagaimanakah cara saya melampirkan pada binari go tersusun silang untuk penyahpepijatan menggunakan Visual Studio Code IDE?

WBOY
WBOYke hadapan
2024-02-08 20:53:53903semak imbas

如何使用 Visual Studio Code IDE 附加到交叉编译的 go 二进制文件以进行调试?

Kandungan soalan

Saya menggunakan Kod Visual Studio sebagai IDE untuk aplikasi berasaskan golang. Aplikasi ini akan dijalankan pada sasaran Linux. Saya ingin melampirkan penyahpepijat VSC pada binari kompil silang ini. Binari boleh disusun untuk platform lengan atau x86. Saya tahu fail launch.json boleh mencapai ini, tetapi saya tidak pernah menggunakannya. Tolong bantu.


Jawapan betul


Penyahpepijat dlv digunakan untuk nyahpepijat kod go. Delve atau dlv mempunyai had bahawa ia hanya boleh ditambahkan pada binari untuk seni bina 64-bit. Jadi saya menyusun kod untuk seni bina amd 64 bit dan menjalankannya pada kotak Linux saya. Seterusnya, saya mendapat ID proses binari dan melampirkan gerudi ke bawah. Saya menggunakan port 2345 untuk pelayan delve

dlv Lampirkan some_process_id --listen=:2345 --headless --api-version=2 --log

Anda juga mungkin perlu mendayakan/menukar tahap penyahpepijatan pada sasaran Linux anda dengan keistimewaan sudo.

cat 0 > /proc/sys/kernel/yama/ptrace_scope

Buat launch.json pada Visual Studio Code IDE dengan tetapan berikut:

{
            "name": "Launch Windows",
            "type": "go",
            "request": "attach",
            "mode": "remote",
            "remotePath": "path/to/binary",
            "port": 2345,
            "host": "target ip address"
 }

Memandangkan saya menjalankan Visual Studio daripada mesin Windows, saya memilih mod jauh untuk sasaran Linux jauh.

Sekarang menjalankan penyahpepijat daripada Kod Visual Studio, tetapan dalam launch.json akan mencari penyahpepijat/pelayan dlv pada sasaran dan dilampirkan padanya. Letakkan beberapa titik putus dalam kod anda, sebaik-baiknya di tempat yang boleh dicetuskan secara luaran. Contohnya. Menerima panggilan pada pelayan yang boleh dicetuskan daripada panggilan pelanggan.

Atas ialah kandungan terperinci Bagaimanakah cara saya melampirkan pada binari go tersusun silang untuk penyahpepijatan menggunakan Visual Studio Code IDE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam