Valgrind মেমোরি সম্পর্কে জানার জন্য মেমোরি সুবিধা দিয়ে থাকে , যোগসুত্র/প্রক্রিয়া ,এবং অন্যান্য জিনিস এর সাথে সংযুক্ত যা একটি প্রোগ্রামের পারফরমেন্সের মধ্যে আছে।Firefox OS tree তে ইহা সংযুক্ত করে থাকে,এবং ফোনে যা চালানো যায় যা সঠিক সম্পদ এই অনুচ্ছেদ দেখায় কিভাবে ব্যবহার করতে হয় ইহা।
প্রয়োজনীয়তা
Firefox OS এর বিপক্ষে Valgrind চালানোর আগে,এটা রিকমান্ডেড করা হয়ে থাকে যে Debugging Mozilla with Valgrind এর সাথে ডেভেলপাররা তাদেরকে পরিচিত করে থাকে ।বেশির ভাগ তথ্য এটা বহন করে যা Firefox OS এর বিপক্ষে কাজ করায় সংযুক্ত, যা বেশির ভাগ গঠন এবং কমান্ড লাইন স্টেপ এর Firefox OS গঠনের দ্বারা এবং বাতিল স্ক্রীপ্ট দ্বারা পরিচালিত হয়ে থাকে।
Firefox OS বিপক্ষে Valgrind একটি ফোনে চালাতে,একটি ফোন সাধারন জায়গার থেকে বেশে জায়গা সহ বেশি দরকার।Valgrind হল জায়গার ইন্টেন্সিভ,এবং সাধারনত কারন হয়ে থাকে Out Of Memory errors এর যা ফোনে 1GB of RAM এর চেয়ে কমে হয়ে থাকে .লেখা অনুসারে(২০১৪-১২-০৪), Valgrind পরীক্ষা চালানো হয়ে থাকে Firefox OS এর Nexus 4 ফোনে 2GB of RAM এর সাথে চলার উপরে ,কিন্তু এটা হবে Geeksphone Keons এবং একই spec ফোনে ।দেখুন Phone and device data ারো বেশি ফোনের সম্পর্কের জানার জন্য।
Valgrind চালানো FxOS ফোনে
চলুন Valgrind চালানো প্রক্রিয়া দেখি।
Compiling
Firefox OS এর সাথে with valgrind এর সক্ষ্মতা তৈরি করতে, নিচের .userconfig
file যোগ করুন।
export B2G_VALGRIND=1
Building debug (B2G_DEBUG
) আরো রিকমান্ডেড।Building কোন অপ্টিমাইজেশন ছাড়া (B2G_NOOPT
) তৈরি করে জিনিস যা সাধারনত অব্যবহারযোগ্য ভাভে ধীরে চলে, এবং রিকমান্ডেড না বিশেষ কেস ছাড়া যেখাকে ইহাকে ভাবা হয়ে থাকে অপ্টিমাইজেশনে অন্ধকার ভুল রুপে।
Running
নোটঃRunning Valgrind একটি Firefox OS ফোনে হয়ে থাকে ফোনের কন্টেক্সট এর উপরে,অপারেটিং সিস্টেমের উপরে নয়।এটা মনে করা হয়ে থাকে যে কোন প্লাটফর্ম যা ডেভেলপ ঘটিয়ে থাকে adb এর যা সবসময় পাওয়া যায় এবংrun-valgrind.sh
script to runবাতিল করে valgrind ফোনে চালাতে ।
valgrindএর মধ্যে Firefox OS চালাতে,ব্যবহার করুন the run-valgrind.sh
script from the B2G directory।স্ক্রিপ্ট নিচে দেয়াঃ
- r/w হিসেবে ফোনের ফাইল সিস্টেম পুনআহোরন করুন ।
- বর্তমান
libxul.so
ডিবাগ কপি করুন সম্পুর্ন চিহ্ন দিতে যা ফোনে আছে।যেহেতু শত শত MB দিয়ে ফাইলটা পরিপুর্ন,এই ধাপে বিভিন্ন সময় নেয়া হয়ে থাকে যা শেষ করতে প্রয়োজনীয়,এটা প্রতিটি নতুন তৈরির সময়ে প্রস্তুত করা হয়ে থাকে।valgrind চালাতেlibxul
এর কপি ধাপ ছাড়া,নির্দেশটা চালানঃ
run-valgrind.sh nocopy
- ফোনটি পুন্রায় রিবুট করুন।
- Kills the b2g প্রক্রিয়া চালান যা ফোনে শুরু হয়ে থাকে ।
- ইহার নিজের b2g প্রক্রিয়া valgrind এর মধ্যে চালান।
সকল valgrind output লেখ হবে টার্মিনালে stdout
এ যা run-valgrind.sh
script এর বের হওয়ার টার্মিনাল যা পড়া যায় অথবা ফাইলে উকি মারে।
নোটঃযেহেতু
run-valgrind.sh
script নিজের adb প্রক্রিয়ায় b2g process তে চলমান ,killing the script আরো kill b2g নষ্ট করবে এবং valgrind ফোনে নষ্ট হবে ।এটা প্রদর্শন করে যে ফোনটি চালানোর পরে রিবুটেড হয় একটি valgrind সেসনের উপরে ,যেহেতু এটি যেকোন কিছু একটি অড স্টেট এ থেকে ত্যাগ করতে পারে।
Valgrind এর উপরে Firefox OS Desktop চালানো
valgrind চালানো Firefox OS Desktop এর কাজের বিপক্ষে যেহেতু এটা চালানো হয়ে থাকে একই পথে যা desktop Firefox এর বিপক্ষে কাজ করে থাকে।Debugging Mozilla with Valgrind পেজে আলোচনা করুন আরও বেশি তথ্যের জন্য ।সকল পতাকার page for more information. All of the relevant build flags will need to be added to mozconfig যোগ করা উচিত
,এবং সকল প্লাটফর্ম and all platform-বিশেষ ইস্যু যা পেজে প্রয়োগ করা হয়ে থাকে ।specific issues in the page will apply.
নোট করুন যে Valgrind চালানো ডেস্কটপের উপরে যা OOP/process-per-tab mode এ যোগ করার জন্য নিচের প্রক্রিয়ায় child processes গুলো ট্রাক করে থাকে নিশ্চিত করার জন্যঃ
--trace-children=yes
Firefox OS Valgrind পরিচালনা করা এবং আপডেটিং করা
যখন প্যাচেস আপ্সট্রিম ব্যবহার করা হয়ে থাকে ,Valgrind forহল Firefox OS এর জন্য পরিচালিত যা একটি ফর্ক রেপসেটরিতে রাখা হয়ে থাকে উওন্নতি ঘটানোর জন্য যা সম্ভব হয়ে থাকে Firefox OS এর গঠনের ট্রি এবং ভার্সনের এর সাথে যোগাযোগের কারনে।
Valgrind Repos আপডেটিং
ওয়ার্নিংঃGIT এর সাথে অভিজ্ঞতাও দরকার। valgrind repos উন্নত করারা চেষ্টা করবেন না ,যদি আপনি জটিল Git operations চালানোতে দক্ষ না হোন।কোন আপডেট github repoদর্পন হবে git.mozilla.org এর যা পুল করা হবে ডেভেলপারদের
,HEAD of the manifests repo ব্যবহার দ্বারা ।যখন Valgrind ভাঙ্গা হবে তা কোন কিছুর উপর ভাংবেনা যা Valgrind এর সক্ষমতা নেই(বি দ্র. tbpl), ইহা হবে অনেক বেশি বিরক্তকর ডেভেলপারস যারা এটি ব্যবহারের চেষ্টা করে।
প্রধান Firefox OS valgrind এবং VEX repos হল
প্রধান শাখা হল SVN ট্রাঙ্কের প্রিন্সিটিভ ভার্সনের শাখাএইসব প্রত্যেক রেপুস,যখন Firefox OS শাখা বহন করবে Firefox OS- এর বিশেষ প্রক্রিয়া ট্রাঙ্কের উপরে যা রিবেস করা।
নোটঃALWAYS UPDATE BOTH REPOS AT THE SAME TIME.যখন তারা দূটা পৃথক রেপস,VEX হল সাধারনত Valgrind এরএকটি সাবমডিউল এবং HEAD of valgrind সাধারনত HEAD of VEX এর বিন্দু।.
git.mozilla.org
ডোমেইনের প্রতিলিপি B2G মেনিফেস্টে ব্যবহারের জন্যঃ
- https://git.mozilla.org/?p=b2g/valgrind.git;a=summary
- https://git.mozilla.org/?p=b2g/vex.git;a=summary
- প্রধান রেপ হল sync এর সাথে valgrind SVN কে git svn এর সাথে রাখা।আপডেটেড রেপস কে পুল করতে ,valgrind কে ক্লোন করুন এবং vex repos নেয়া হয় github থেকে , তার পরে নিচেরটা রান করুনঃ
git svn init -s [subversion repo url]
- SVN info পুল করুন যা কয়েক ঘন্টা সময় নিবে,কিন্তু যখন এটা হয়ে যাবে আপনার ট্রি sync করবে প্রধান Valgrind SVN এর সাথে।
- আরো আপডেট পুল করুন,নিচের নির্দেশের সেট ব্যবহার করেঃ
git checkout master git svn fetch git svn rebase git push [github-remote-name] master git checkout fxos git rebase master
- একটি ভাল সুযোগ আছে যা বাধাকে দেখবে Firefox OS শাখার রিবেস ধাপে।যদি আপনার ইস্যু ভালভাবে কাজ না করে,লেখককে ইমেইল করেন যিনি বাধার কমেন্ট করে।
- রিবেসিং এর পরে একটি পুর্ন Firefox OS build রান করুন
B2G_VALGRIND
flag এর সাথে নিশ্চিত করতে যা ইহা গঠন করে থাকে।সবচেয়ে গুরুত্বপুর্ন হল এর স্ক্রীপ্ট শাখা। - একদা আপনি রিবেস করে AND TESTED যা Firefox OS tree এর বিপক্ষে একটি গঠন ,আপনাকে Firefox OS শাখার প্রধান পরিবর্তনের জন্য ধাক্কা দিতে হবে।
git push -f [github-remote-name] fxos
গঠন,ইন্সটল,এবং বাতিল করা স্ক্রিপ্ট
কিছু মাল্টিপল স্ক্রীপ্ট আছে যা Valgrind Firefox OS এর অংশের শাখা অথবা B2G রেপও যা একটি রেপো ফেস আপদেট করারজন্য দরকার।
অতিরিক্ত/valgrind/android.mk
এটি Android গঠন সিস্টেমের স্ক্রীপ্ট।তখন থেকেই নয় বেশির ভাগ সময়, এটি সেটিই যেটাতে পরিবর্তনের প্রয়োজন পরে থাকে ,ফাইলের যোগ/সরানোর কারনে Valgrind tree থেকে ।একটি -j1
গঠন ব্যবহার করুন যা টার্গেট তা গঠন করতে ব্যর্থ হলে তবে তা দেখতে,এবং যদি ইহা একটি ফাইল অথবা একটি অবিদ্যমান রেফারেন্সিং ফাইল হারিয়ে ফেলে ,ফাইল লিস্ট আপডেট করুন ।
অতিরিক্ত/valgrind/valgrind.mk
এটি বহন করে থাকে প্যাকেজের লিস্ট যা প্রয়োজন হয় গঠন করতে এবং যোগ করতে FxOS সিস্টেম ইমেজ,gonk-misc/b2g.mk দ্বারা রেফারেন্স করা।
Valgrind নতুন প্যাকেজে যোগ করার জন্য কম পাওয়া যায় বলে এটি সাধারনত আপডেট করার দরকার পরেনা।কিন্তু যদি লাগে তবে এতে রাখুন।
run-valgrind.sh
Valgrind ফোনে চালানোর স্ক্রীপ্ট।যদি Valgrind ফোনে চালানোর জন্য নতুন কমান্ড লাইন থাকে যা যুক্তি প্রদর্শন করে থাকে,তাদের এখানে রাখুন।এটা সেখানে যা আমরা কপি করি লাইব্রেরি ফোনে চিহ্নটি ডিবাগের সাথে থাকে,সুতরাং কোন এডজাস্টমেন্ট /পরিবর্তন প্রক্রিয়াটিতে হওইয়া উচিত ।