কিভাবে একটি ফাইলে Valgrind এর আউটপুট পুনর্নির্দেশ?


147

ভালগ্রাইন্ড সরঞ্জামটির সাথে কাজ করার সময়, আমাকে ভালগ্রাইন্ড সরঞ্জাম দ্বারা উত্পাদিত বিশদটি লগ ইন করতে হবে। আমি কীভাবে এটি সম্পাদন করতে পারি? আমি কিছু চেষ্টা করেছিলাম,

 valgrind a.out | test

এবং

 valgrind a.out > test

এটি কেবল প্রোগ্রামটির আউটপুট দিয়েছে এবং ভ্যালগ্রাইন্ড মেমরির ত্রুটি নয়, তথ্য ফাঁস করে। এমনকি আমি যদি এই জাতীয় প্রোগ্রামটি ব্যবহারকারীর ইন্টারঅ্যাকশন প্রয়োজন (যেমন ইনপুট প্রদান) প্রয়োজন হয় আমি এই মত করছি। যদি প্রোগ্রামটির ব্যবহারকারীর ইনপুট প্রয়োজন হয় তবে এটি নিজে নিজে কাজ করবে না।

কিভাবে আমি এটি করতে পারব?


2
আপনি কি স্টাউট এবং স্টাডার উভয়ই পুনঃনির্দেশের চেষ্টা করেছেন? valgrind a.out &> file
sidyll

উত্তর:


415
valgrind --log-file="filename"

1
এটি কেবল স্ট্যাডারকে বাঁচায়, টার্মিনালে লিখিতভাবে (একইভাবে পরীক্ষিত প্রোগ্রামের আউটপুট এবং ভ্যালগ্রাইন্ড দ্বারা চিহ্নিত ত্রুটির মধ্যে একাত্মতা রাখা) একইভাবে স্টার্ডার এবং স্টাডআউট উভয়কে একই ফাইলে সংরক্ষণ করা সম্ভব?
প্রকপ হাপালা

78

ডিফল্টরূপে, ভালগ্রাইন্ড তার আউটপুটটি স্ট্ডার-এ লিখে দেয়। সুতরাং আপনার মতো কিছু করা দরকার:

valgrind a.out > log.txt 2>&1

বিকল্পভাবে, আপনি ভালগ্রাইন্ডকে অন্য কোথাও লিখতে বলতে পারেন; দেখতে http://valgrind.org/docs/manual/manual-core.html#manual-core.comment (কিন্তু আমি এই কখনোই চেষ্টা করেছি)।


4
অনেক ধন্যবাদ :). এটা কাজ করেছে. আপনি কি দয়া করে আমাকে "2> & 1" এর সাথে বলতে পারেন?
দিনেশ

10
@ দিনেশ: আমি gnu.org/software/bash/manual/bashref.html# নির্দেশনা পড়ার পরামর্শ দিচ্ছি , যা পুনর্নির্দেশগুলি করার জন্য উদ্ভট বাশ সিনট্যাক্সের বর্ণনা দিয়েছে!
অলিভার চার্লসওয়ার্থ

16
দ্রষ্টব্য: এই পরামর্শটি a.outএকই লগ ফাইলে আউটপুটও প্রেরণ করবে । আপনি লগ ফাইল থেকে Valgrind এর আউটপুট সংরক্ষণ করতে চান তাহলে ছাড়া a.out এর, আপনি ব্যবহার করা উচিত --log-fileবিকল্প Lex দ্বারা সুপারিশ করেছে।
এডাম

এটি ডিবাগিং মেমরি ফাঁসের জন্য দুর্দান্ত উত্তর!
ফ্রি url

10

আপনি যদি লগগুলি কম দিয়ে পড়তে চান তবে আপনি --log-fd বিকল্পগুলিও সেট করতে পারেন। উদাহরণ স্বরূপ :

valgrind --log-fd=1 ls | less
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.