Rust:
ডিবাগ আউটপুট প্রিন্ট করা
কিভাবে:
একটি সাধারণ কিছু মুদ্রণ করতে, println!
ব্যবহার করুন। যদি আপনাকে ডিবাগিংয়ের জন্য একটি মান মুদ্রণ করা প্রয়োজন হয়, তখন dbg!
সুবিধাজনক হতে পারে।
fn main() {
let mut vec = vec![1, 2, 3];
// বেসিক মুদ্রণ
println!("হ্যালো, রাস্টেশিয়ানরা!");
// `{:?}` ব্যবহার করে println! এর সাথে ডিবাগ ফরম্যাটিং
println!("{:?}", vec);
// `dbg!` এর সাথে ডিবাগ, stderr তে মুদ্রণ করে এবং মান ফেরত দেয়
dbg!(&vec);
// `dbg!` ব্যবহার করার পর vec পরিবর্তন
vec.push(4);
dbg!(vec);
}
নমুনা আউটপুট:
হ্যালো, রাস্টেশিয়ানরা!
[1, 2, 3]
[src/main.rs:9] &vec = [
1,
2,
3,
]
[src/main.rs:13] vec = [
1,
2,
3,
4,
]
গভীর ডাইভ
ডিবাগ আউটপুট মুদ্রণ প্রোগ্রামিংয়ের প্রাথমিক দিনগুলিতে একটি সরল অংশ হিসেবে ছিল। এর সাদাসিদে প্রায়ই সমস্যাগুলি দ্রুত নির্ণয় করার জন্য একে একটি পছন্দনীয় পছন্দে পরিণত করে।
রাস্টে, println!
ব্যবহারকারী-বান্ধব বার্তাগুলি প্রদর্শনের জন্য দারুণ। যাদু মূলত dbg!
এর সাথে আসে, যা রাস্ট 1.32 এ প্রবর্তিত হয়, এটি কোডে তার অবস্থানটির সাথে মানটি মুদ্রণ করে। এটি স্ট্যান্ডার্ড ত্রুটি (stderr) তে আউটপুট দেয়, তাই এটি স্ট্যান্ডার্ড আউটপুট (stdout) এর সাথে মিশে যাবে না এবং প্রয়োজন হলে আলাদাভাবে পুনঃনির্দেশ করা যেতে পারে।
জটিল ধরণের জন্য, আপনি Debug
ট্রেইট অনুকরণ করতে পারেন যা স্বয়ংক্রিয়ভাবে println!
এবং dbg!
ব্যবহার করে একটি ফরম্যাট তৈরি করে। এটা আপনার স্ট্রাকচার এবং ইনামগুলির উপরে #[derive(Debug)]
এনোটেশন করে যা করে।
বিকল্প হিসেবে, যেমন log
এবং env_logger
মত সঠিক লগারগুলি বিদ্যমান, এবং আপনি যদি আরও নির্দিষ্ট নিয়ন্ত্রণ চান, বিবেচনা করুন gdb
অথবা lldb
মত ডিবাগার যা rust-gdb
অথবা rust-lldb
মত ইন্টিগ্রেশনের মাধ্যমে রাস্টের সাথে কাজ করে।
আরও দেখুন
রাস্টের ডিবাগ মুদ্রণ ও ফরম্যাটিং অপশনের বিষয়ে আরও জানতে:
println!
এবং ফর্ম্যাটিং সম্পর্কে রাস্ট বুক: https://doc.rust-lang.org/std/fmt/index.htmldbg!
ম্যাক্রো ডকুমেন্টেশন: https://doc.rust-lang.org/std/macro.dbg.htmlgdb
এবংlldb
এর সাথে ডিবাগিং সম্পর্কে অফিসিয়াল গাইড: https://rust-lang.github.io/rustup-components-history- লগিং-এর জন্য আরও গঠিত পদ্ধতি হিসাবে
log
ক্রেট: https://crates.io/crates/log log
ফ্যাসাডের জন্য একটি সাধারণ লগার বাস্তবায়ন,env_logger
ক্রেট: https://crates.io/crates/env_logger