এটি হল কমান্ড ltrace যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
ltrace - একটি লাইব্রেরি কল ট্রেসার
সাইনোপিসিস
ltrace [-ই ছাঁকনি|-L] [-l|--লাইব্রেরি=library_pattern] [-এক্স ছাঁকনি] [-এস] [-বি|--নো-সংকেত]
[-i] [-w|--কোথায়=nr] [-r|-t|-tt|-ttt] [-T] [-F ফাইলের নাম] [-ক ম্যাক্সেলটস] [-স স্ট্রসাইজ]
[-C|--demangle] [-a|--- align স্তম্ভ] [-n|---ইন্ডেন্ট nr] [-o|--আউটপুট ফাইলের নাম] [-D|--ডিবাগ
মাস্ক] [-উ ব্যবহারকারীর নাম] [-চ] [-পৃ PID] [[--] হুকুম [আর্গ ...]]
ltrace -c [-e ছাঁকনি|-L] [-l|--লাইব্রেরি=library_pattern] [-এক্স ছাঁকনি] [-S] [-o|--আউটপুট
ফাইলের নাম] [-চ] [-পৃ PID] [[--] হুকুম [আর্গ ...]]
ltrace -V|--সংস্করণ
ltrace -h|--সহায়তা
বর্ণনাঃ
ltrace একটি প্রোগ্রাম যা শুধুমাত্র নির্দিষ্টভাবে চালায় হুকুম এটি প্রস্থান না হওয়া পর্যন্ত। এটি বাধা দেয়
এবং ডাইনামিক লাইব্রেরি কল রেকর্ড করে যা এক্সিকিউটেড প্রসেস দ্বারা কল করা হয় এবং
সংকেত যা সেই প্রক্রিয়া দ্বারা গৃহীত হয়। এটি সিস্টেমটিকে আটকাতে এবং মুদ্রণ করতে পারে
প্রোগ্রাম দ্বারা সম্পাদিত কল.
এর ব্যবহার অনেকটা অনুরূপ স্ট্রেস(1).
বিকল্প
-এ, --সারিবদ্ধ স্তম্ভ
একটি নির্দিষ্ট রিটার্ন মান সারিবদ্ধ স্তম্ভ (ডিফল্ট কলাম হল স্ক্রীনের প্রস্থের 5/8)।
-A ম্যাক্সেলটস
একটি দিয়ে বাকিগুলিকে চাপা দেওয়ার আগে সর্বাধিক সংখ্যক অ্যারের উপাদানগুলি প্রিন্ট করতে হবে৷
উপবৃত্ত ("...")। এটি পুনরাবৃত্তিমূলক কাঠামোর সম্প্রসারণের সংখ্যাও সীমাবদ্ধ করে।
-বি, --নো-সংকেত
ট্রেস করা প্রক্রিয়া দ্বারা প্রাপ্ত সংকেতগুলির মুদ্রণ অক্ষম করুন৷
-c প্রতিটি লাইব্রেরি কলের জন্য সময় এবং কল গণনা করুন এবং প্রোগ্রাম প্রস্থানের একটি সারাংশ রিপোর্ট করুন।
-সি, --ডেমঙ্গলে
নিম্ন-স্তরের প্রতীক নামগুলিকে ব্যবহারকারী-স্তরের নামগুলিতে ডিকোড (ডিম্যাঙ্গেল) করুন। অপসারণ ছাড়াও
সিস্টেম দ্বারা ব্যবহৃত কোনো প্রাথমিক আন্ডারস্কোর উপসর্গ, এটি C++ ফাংশনের নাম তৈরি করে
পঠনযোগ্য
-ডি, --ডিবাগ মাস্ক
এর ডিবাগিং আউটপুট দেখান ltrace নিজেই। মাস্ক অভ্যন্তরীণ অর্থ সহ একটি সংখ্যা
যে সত্যিই ভাল সব সংজ্ঞায়িত করা হয় না. মাস্ক 77 এর সমস্ত ডিবাগ বার্তা দেখায়, যা
আপনি সাধারণত কি প্রয়োজন হয়.
-e ছাঁকনি
একটি যোগ্য অভিব্যক্তি যা পরিবর্তন করে কোন লাইব্রেরিটি ট্রেস করতে কল করে। এর বিন্যাস
ফিল্টার এক্সপ্রেশন বিভাগে বর্ণনা করা হয়েছে ছাঁকনি অভিব্যক্তি. এর বেশি হলে
কমান্ড লাইনে one -e অপশন দেখা যায়, লাইব্রেরি কল যা তাদের যেকোনোটির সাথে মেলে
চিহ্নিত করা হয় যদি না দেওয়া হয়, @মেইন একটি ডিফল্ট হিসাবে ধরে নেওয়া হয়।
-f শিশু প্রক্রিয়াগুলিকে ট্রেস করুন কারণ সেগুলি বর্তমানে ট্রেস করা প্রক্রিয়াগুলির ফলে তৈরি হয়েছে৷
এর কাঁটাচামচ(এক্সএনএমএক্স) বা ক্লোন(2) সিস্টেম কল। নতুন প্রক্রিয়া অবিলম্বে সংযুক্ত করা হয়.
-F ফাইলের নাম
একটি বিকল্প কনফিগার ফাইল লোড করুন। সাধারণত, /etc/ltrace.conf এবং ~/.ltrace.conf ইচ্ছা
পড়তে হবে (পরবর্তীটি শুধুমাত্র যদি এটি বিদ্যমান থাকে)। প্রদত্ত ফাইলটি লোড করতে এই বিকল্পটি ব্যবহার করুন বা
এই দুটি ডিফল্ট ফাইলের পরিবর্তে ফাইল। দেখা ltrace.conf(5) বিস্তারিত জানার জন্য
ltrace কনফিগারেশন ফাইলের সিনট্যাক্স।
-এইচ, --হেল্প
ltrace এবং exit করার বিকল্পগুলির একটি সারাংশ দেখান।
-i লাইব্রেরি কলের সময় নির্দেশ পয়েন্টার প্রিন্ট করুন।
-l, --লাইব্রেরি library_pattern
শুধুমাত্র মেলে এমন লাইব্রেরি দ্বারা বাস্তবায়িত ফাংশনে কল প্রদর্শন করুন
library_pattern. একাধিক লাইব্রেরি প্যাটার বিভিন্ন উদাহরণের সাথে নির্দিষ্ট করা যেতে পারে
এই বিকল্পের। library_pattern এর সিনট্যাক্স বিভাগে বর্ণনা করা হয়েছে ছাঁকনি
অভিব্যক্তি.
মনে রাখবেন যে এই বিকল্পটি এমন কলগুলি নির্বাচন করে যা নির্বাচিতদের কাছে নির্দেশিত হতে পারে
লাইব্রেরি, কোন প্রকৃত গ্যারান্টি নেই যে কলটি অন্য কোথাও নির্দেশিত হবে না
যেমন LD_PRELOAD বা শুধুমাত্র নির্ভরতা অর্ডারের কারণে। আপনি যদি নিশ্চিত করতে চান
প্রদত্ত লাইব্রেরিতে যে চিহ্নগুলিকে আসলে বলা হয়, ব্যবহার করুন -x @library_pattern পরিবর্তে.
-L যখন no -e অপশন দেওয়া হয়, তখন এর ডিফল্ট অ্যাকশন ধরবেন না @মেইন.
-n, --ইন্ডেন্ট nr
ইন্ডেন্ট ট্রেস আউটপুট দ্বারা nr কল নেস্টিংয়ের প্রতিটি স্তরের জন্য স্পেস। এই বিকল্প ব্যবহার করে
প্রোগ্রাম ফ্লো ভিজ্যুয়ালাইজেশন অনুসরণ করা সহজ করে তোলে। এই indents অকেজো এছাড়াও
যে ফাংশনগুলি কখনই ফিরে আসে না, যেমন পরিষেবা ফাংশনগুলি ব্যতিক্রমগুলি নিক্ষেপ করার জন্য
C++ রানটাইম।
-o, --আউটপুট ফাইলের নাম
ফাইলে ট্রেস আউটপুট লিখুন ফাইলের নাম বরং stderr থেকে.
-p PID প্রসেস আইডি দিয়ে প্রসেসের সাথে সংযুক্ত করুন PID এবং ট্রেসিং শুরু করুন। এই বিকল্প করতে পারেন
চালানোর জন্য একটি কমান্ড পাস করার সাথে একসাথে ব্যবহার করা হবে। এটা সংযুক্ত করা সম্ভব
একাধিক বিকল্প পাস করে বিভিন্ন প্রক্রিয়া -p.
-r ট্রেসের প্রতিটি লাইনের সাথে একটি আপেক্ষিক টাইমস্ট্যাম্প প্রিন্ট করুন। এই সময় রেকর্ড
ধারাবাহিক লাইনের শুরুর মধ্যে পার্থক্য।
-s স্ট্রসাইজ
প্রিন্ট করার জন্য সর্বাধিক স্ট্রিং আকার নির্দিষ্ট করুন (ডিফল্ট হল 32)।
-এস ডিসপ্লে সিস্টেম কলের পাশাপাশি লাইব্রেরি কল
-t দিনের সময়ের সাথে ট্রেসের প্রতিটি লাইন উপসর্গ করুন।
-tt দুইবার দেওয়া হলে, মুদ্রিত সময় মাইক্রোসেকেন্ড অন্তর্ভুক্ত করবে।
-ttt তিনবার দেওয়া হলে, মুদ্রিত সময় মাইক্রোসেকেন্ড এবং লিডিং অন্তর্ভুক্ত করবে
অংশটি যুগের পর থেকে সেকেন্ডের সংখ্যা হিসাবে মুদ্রিত হবে।
-টি প্রতিটি কলের ভিতরে ব্যয় করা সময় দেখান। এটি মধ্যে সময়ের পার্থক্য রেকর্ড করে
প্রতিটি কলের শুরু এবং শেষ।
-u ব্যবহারকারীর নাম
userid, groupid এবং এর পরিপূরক গোষ্ঠীর সাথে কমান্ড চালান ব্যবহারকারীর নাম. এই
বিকল্পটি শুধুমাত্র তখনই উপযোগী যখন রুট হিসাবে চলছে এবং এর সঠিক নির্বাহ সক্ষম করে
setuid এবং/অথবা setgid বাইনারি।
-w, --কোথায় nr
এর ব্যাকট্রেস দেখান nr প্রতিটি ট্রেসড ফাংশনের জন্য স্ট্যাক ফ্রেম। এই বিকল্প সক্রিয়
শুধুমাত্র কম্পাইলের সময় libunwind সমর্থন সক্রিয় করা হলে।
-x ছাঁকনি
একটি যোগ্য অভিব্যক্তি যা পরিবর্তন করে কোন প্রতীক টেবিল এন্ট্রি পয়েন্ট ট্রেস করতে।
ফিল্টার এক্সপ্রেশনের বিন্যাস বিভাগে বর্ণনা করা হয়েছে ছাঁকনি অভিব্যক্তি.
কমান্ড লাইনে একের বেশি -x বিকল্প দেখা দিলে, যে কোনো চিহ্নের সাথে মেলে
তাদের সনাক্ত করা হয়. কোন এন্ট্রি পয়েন্ট ট্রেস করা হয় না যদি কোন -x দেওয়া হয়।
-ভি, - রূপান্তর
ltrace এবং প্রস্থানের সংস্করণ নম্বর দেখান।
ছাঁকনি অভিব্যক্তি
ফিল্টার এক্সপ্রেশন হল গ্লোব- বা regexp-ভিত্তিক নিয়মের একটি চেইন যা প্রতীক বাছাই করতে ব্যবহৃত হয়
লাইব্রেরি থেকে ট্রেসিংয়ের জন্য যা প্রক্রিয়াটি ব্যবহার করে। এটি অধিকাংশই স্বজ্ঞাত, তাই একটি হিসাবে
উদাহরণস্বরূপ, নিম্নলিখিতগুলি malloc এবং বিনামূল্যের কলগুলিকে ট্রেস করবে, libc দ্বারা করা ব্যতীত:
-e malloc+[ইমেল সুরক্ষিত]*
এটি পড়ে: malloc এবং বিনামূল্যে ট্রেস করুন, কিন্তু libc থেকে আসা কিছু ট্রেস করবেন না। আধা-
আনুষ্ঠানিকভাবে, উপরের উদাহরণের সিনট্যাক্স প্রায় এই মত দেখায়:
{[+-]প্রতীক_প্যাটার্ন][@library_pattern]}
প্রতীক_প্যাটার্ন প্রতীকের নামের সাথে মিল করতে ব্যবহৃত হয়, library_pattern লাইব্রেরি SONAME এর সাথে মেলে।
উভয়ই অন্তর্নিহিতভাবে গ্লব, তবে নিয়মিত অভিব্যক্তিও হতে পারে (নীচে দেখুন)। গ্লোব
সিনট্যাক্স মেটা-অক্ষর সমর্থন করে * এবং ? এবং অক্ষর ক্লাস, একইভাবে কি মৌলিক
bash globs সমর্থন। ^ এবং $ স্বীকৃত হয়, যথাক্রমে, প্রদত্ত শুরু এবং শেষ
নাম.
উভয় প্রতীক_প্যাটার্ন এবং library_pattern পুরো নামের সাথে মিলতে হবে। যদি তুমি চাও
শুধুমাত্র নামের অংশের সাথে মিল করুন, এটিকে উপযুক্ত হিসাবে এক বা দুটি * দিয়ে ঘিরে দিন। দ্য
ব্যতিক্রম হল যদি প্যাটার্নটি মোটেই উল্লেখ করা না থাকে, যে ক্ষেত্রে এটি হয়
অনুরূপ প্যাটার্ন ছিল *. (তাই malloc সত্যি malloc@* এবং @libc.* সত্যি
*@libc.*.)
যে লাইব্রেরিতে কোনো স্পষ্ট SONAME নেই, সেখানে SONAME-এর জন্য বেসনাম নেওয়া হয়। যে ঝুলিতে
পাশাপাশি প্রধান বাইনারি জন্য: /বিন/ইকো এর একটি অন্তর্নিহিত SONAME আছে প্রতিধ্বনি। এটি ছাড়াও,
বিশেষ লাইব্রেরি প্যাটার্ন হাত সর্বদা প্রধান বাইনারিতে প্রতীকগুলি মেলে এবং কখনই একটি লাইব্রেরি নয়
প্রকৃত SONAME এর সাথে হাত (যেমন ব্যবহার করুন ^প্রধান or [এম]এআইএন যে জন্য).
যদি প্রতীক বা লাইব্রেরি প্যাটার্নটি স্ল্যাশে ঘেরা থাকে (/ like this/), তাহলে তা হয়
পরিবর্তে একটি নিয়মিত অভিব্যক্তি হিসাবে বিবেচনা করা হয়। লেখার বদলে শর্টহ্যান্ড হিসেবে /x/@/y/, আপনি
লিখতে পারে /x@y/.
যদি লাইব্রেরি প্যাটার্নটি একটি স্ল্যাশ দিয়ে শুরু হয় তবে এটি একটি SONAME অভিব্যক্তি নয়, তবে একটি পথ
এক্সপ্রেশন, এবং লাইব্রেরি পাথ নামের সাথে মিলে যায়।
প্রথম নিয়মে একটি চিহ্নের অভাব হতে পারে, এই ক্ষেত্রে + অনুমান করা হচ্ছে. যদি, অন্যদিকে,
প্রথম নিয়ম আছে a - চিহ্ন, এটা যেন অন্য নিয়ম ছিল @ এটা সামনে, যা আছে
প্রদত্ত নিয়মের পরিপূরক ট্রেসিং এর প্রভাব।
উপরের নিয়মগুলি ট্রেস করা চিহ্নগুলির সেট তৈরি করতে ব্যবহৃত হয়। প্রত্যেক প্রার্থীর প্রতীক
উপরোক্ত নিয়মের শৃঙ্খল অতিক্রম করেছে। প্রাথমিকভাবে, প্রতীক হয় অচিহ্নিত। যদি এটা
মেলে a + নিয়ম, এটা হয়ে যায় চিহ্নিত, যদি এটি মেলে a - নিয়ম, এটা হয়ে যায় অচিহ্নিত আবার.
যদি, সমস্ত নিয়ম প্রয়োগ করার পরে, প্রতীক হয় চিহ্নিত, এটা ট্রেস করা হবে.
onworks.net পরিষেবা ব্যবহার করে অনলাইনে ltrace ব্যবহার করুন