Press ESC to close

Men-debug Aplikasi Menggunakan strace dan lsof

WhatsAppTelegramFacebookXThreadsCopy Link

Anda menghadapi kondisi di mana sebuah aplikasi di Linux tiba–tiba macet, gagal memulai, atau tidak memberikan pesan error yang jelas? Situasi seperti ini bisa membuat frustrasi, terutama bagi pemula yang baru terjun ke dunia manajemen sistem. Anda mungkin bertanya-tanya: “Kenapa aplikasi ini tidak jalan? Apa yang sebenarnya terjadi di balik layar?”

Tenang—Anda tidak sendirian. Banyak pengguna Linux mengalami kebingungan saat harus menganalisis masalah yang tidak terlihat secara langsung. Di sinilah dua alat sakti Linux, strace dan lsof, berperan besar. Keduanya mampu membantu Anda mengungkap apa yang dikerjakan aplikasi, file apa yang dibuka, dan mengapa sebuah error terjadi.

Dalam artikel ini, Anda akan mendapatkan:

  • Penjelasan mudah tentang strace dan lsof.
  • Panduan langkah demi langkah untuk debugging aplikasi.
  • Contoh penggunaan nyata.
  • Tips menghindari kesalahan saat menganalisis masalah.

Apa Itu strace dan Mengapa Penting untuk Debugging?

strace adalah alat untuk melacak system call (panggilan sistem) yang dilakukan aplikasi. Semua proses Linux menggunakan system call untuk berinteraksi dengan kernel—misalnya membuka file, membuat koneksi jaringan, atau membaca konfigurasi. Jika ada sesuatu yang “ngadat”, strace membantu Anda melihat penyebabnya.

Manfaat strace:

  • Melihat file apa yang dibuka aplikasi.
  • Menemukan error seperti file hilang atau izin tidak cukup.
  • Melihat interaksi aplikasi dengan kernel secara real-time.

Apa Itu lsof dan Kapan Digunakan?

lsof (List Open Files) digunakan untuk menampilkan daftar file yang sedang dibuka oleh aplikasi. Perlu diketahui: di Linux, semua hal dianggap sebagai file — termasuk socket, port, device, dan library.

Manfaat lsof:

  • Mengecek port yang sedang dipakai.
  • Mengetahui proses mana yang mengunci sebuah file.
  • Debugging error “port already in use” atau “device busy”.

Langkah-Langkah Men-debug Aplikasi Menggunakan strace dan lsof


1. Mengecek Aktivitas Aplikasi Menggunakan strace

Berikut langkah penggunaan dasar:

1. Melacak Proses Secara Langsung

Jika aplikasi bisa dijalankan langsung:

strace -o log.txt ./aplikasi

Keterangan:

  • -o log.txt menyimpan output strace ke file agar mudah dibaca.
  • Anda bisa membuka file log untuk mencari error seperti “ENOENT” (file tidak ditemukan).

2. Melacak Proses yang Sudah Berjalan

Pertama, cari PID:

pidof nginx

Kemudian:

sudo strace -p <PID>

Ini memungkinkan Anda melihat system call secara real time.


2. Men-debug Kesalahan File Menggunakan strace

Biasanya, error paling umum adalah file konfigurasi yang hilang atau tidak bisa dibuka. Anda bisa mencari baris dengan kata ENOENT:

grep ENOENT log.txt

Jika muncul:

open("/etc/myapp/config.yml", O_RDONLY) = -1 ENOENT (No such file or directory)

Artinya file tersebut hilang atau salah lokasi.


3. Menggunakan lsof untuk Memeriksa File dan Port

A. Mengetahui File Apa Saja yang Dibuka Proses Tertentu

sudo lsof -p <PID>

Gunakan ini untuk mengetahui file log, konfigurasi, atau socket yang sedang digunakan aplikasi.

B. Memeriksa Port yang Sedang Digunakan

Untuk mengetahui aplikasi yang memakai port 8080:

sudo lsof -i :8080

Contoh hasil:

nginx   1234   root   6u  IPv4   TCP *:8080 (LISTEN)

Ini berguna ketika muncul error seperti “Port already in use”.

C. Menemukan Aplikasi yang Mengunci File

Misalnya file tidak bisa dihapus:

sudo lsof /var/log/myapp.log

Anda akan melihat proses yang mengunci file tersebut.


4. Menggabungkan strace dan lsof Untuk Debug Lebih Dalam

  1. Jalankan aplikasi → muncul error.
  2. Cek file apa yang dicoba dibuka menggunakan strace.
  3. Jika berkaitan dengan port, cek port menggunakan lsof.
  4. Jika file dikunci proses lain, temukan prosesnya dengan lsof.
  5. Lakukan perbaikan sesuai hasil analisis.

Dengan kombinasi ini, Anda bisa mengungkap hampir semua masalah tersembunyi yang dialami aplikasi.


5. Tips Debugging Agar Tidak Tersesat

  • Gunakan strace -o untuk menyimpan output agar lebih mudah dibaca.
  • Fokus pada baris error seperti ENOENT, EACCES, ECONNREFUSED.
  • Jika aplikasi berbasis web, selalu cek port dengan lsof -i.
  • Jangan panik—debugging adalah proses membaca petunjuk satu per satu.

Kini Anda telah memahami cara menggunakan strace dan lsof untuk men-debug aplikasi secara efektif. Kedua alat ini bisa menjadi penyelamat ketika aplikasi bermasalah tanpa pesan error yang jelas. Dengan sedikit latihan, Anda akan jauh lebih percaya diri menghadapi berbagai situasi debugging.

Ingin memperdalam kemampuan Linux Anda?
Baca juga: Menggunakan for, while, dan until loop di Bash” untuk memahami alur skrip otomatisasi.

WhatsAppTelegramFacebookXThreadsCopy Link