আমি strace
সিপিইউ দ্বারা ব্যবহৃত নির্দেশাবলীর ফলস্বরূপ অনুরূপ কিছু সন্ধান করার প্রত্যাশা করছি । উদাহরণস্বরূপ, আমার একটি সরল লুপ রয়েছে যা একটি যোগফল গণনা করে এবং প্রতি দশম পুনরাবৃত্তিকে মুদ্রণ করে
float fsum = 0.0;
for(int i = 0; i < 1000; i++) {
if(i%10==0) {
fprintf(stderr, "%10.5f%%\n", 100.0*float(i)/float(1000));
}
fsum += 1.0/float(i);
}
এখন, বিবৃতি strace
সম্পর্কে তথ্য দেবে fprintf
যেহেতু এটি একটি write(2
বিবৃতি, তবে এটি সংক্ষেপণের পদক্ষেপগুলি সম্পর্কে কোনও তথ্য দেয় না। আমি যদি ব্যবহৃত সিপিইউ নির্দেশাবলী সহ বর্তমানে চলমান একটি প্রোগ্রাম সম্পর্কে তথ্য পেতে চাই তবে তা করার কোনও উপায় আছে কি?
দ্রষ্টব্য: আমি এমন সরঞ্জামগুলি সম্পর্কে জানি gprof
যেগুলির পূর্বে সংকলন প্রয়োজন। আমি gprof
আপনাকে দিতে পারে একই তথ্য সন্ধান করার জন্য একটি উপায় অনুসন্ধান করছি , তবে একটি চলমান প্রোগ্রামের সাথে যা মনের মধ্যে প্রোফাইলিং সহ সংকলিত বা নাও হতে পারে with
সম্ভবত আমার ভুল হয়েছে তবে আমি ভাবিনি যে জিডিবি একটি ইতিমধ্যে চলমান প্রোগ্রামের সাথে সংযুক্ত করতে পারে, তাই না?
—
drjrm3
হ্যাঁ: আপনি যে প্রোগ্রামটি সংযুক্ত করতে চান তার পিআইডি
—
txtechhelp
gdb prorgram 1234
কোথায় 1234
আছে; ডিরেক্টরিতে আপনার যেখানে জিডিবি নামক চালিত আপনার ডিরেক্টরিতে কোনও ফাইল না ঘটলে 1234
এটি ফাইলটি ডিবাগ করার চেষ্টা করবে, অন্যথায় পিআইডি। আপনি যদি সুনির্দিষ্ট প্রোগ্রামটির জন্য ডিবাগ প্রতীক না রাখেন তবে আপনি সম্পূর্ণ সম্পাদন স্ট্যাকগুলি দেখতে পাবেন না (যেমন প্রোগ্রামের নিজস্ব জিনিসগুলির সম্পূর্ণ ফাংশন নাম) তবে আপনি কী ঘটছেন তার বেশ কিছুটা দেখতে পাবেন (সমাবেশ সহ, যেমন সিপিইউ নির্দেশাবলী)
gdb
: gnu.org/software/gdb ..?