ডিবাগিংয়ে সহায়তা করার জন্য আমি আর-ডেভেল-এ কেবল কয়েকটি ফাংশন যুক্ত করেছি। findLineNum()কোন ফাংশনের কোন লাইন সোর্স কোডের একটি নির্দিষ্ট রেখার সাথে সাদৃশ্যযুক্ত তা আবিষ্কার করে; setBreakpoint()এর আউটপুট নেয় findLineNumএবং trace()সেখানে একটি ব্রেকপয়েন্ট সেট করতে কল করে।
এগুলি কোডে উত্স রেফারেন্স ডিবাগ তথ্য রাখার উপর নির্ভর করে। কোড দ্বারা পঠিত এটি ডিফল্ট source(), তবে প্যাকেজগুলির জন্য নয়। প্যাকেজ কোডে উত্স রেফারেন্সগুলি পেতে, পরিবেশের পরিবর্তনশীল সেট করুন R_KEEP_PKG_SOURCE=yes, বা আর এর মধ্যে সেট করুন
options(keep.source.pkgs=TRUE), তারপরে উত্স কোড থেকে প্যাকেজটি ইনস্টল করুন। ?findLineNumবিশ্বব্যাপী পরিবেশে অনুসন্ধান সীমাবদ্ধ না করে প্যাকেজগুলির মধ্যে কীভাবে এটি অনুসন্ধান করতে বলা যায় সে সম্পর্কে বিশদ পড়ুন ।
উদাহরণ স্বরূপ,
x <- " f <- function(a, b) {
if (a > b) {
a
} else {
b
}
}"
eval(parse(text=x)) # Normally you'd use source() to read a file...
findLineNum("<text>#3") # <text> is a dummy filename used by
parse(text=)
এটি মুদ্রণ করবে
f step 2,3,2 in <environment: R_GlobalEnv>
এবং আপনি ব্যবহার করতে পারেন
setBreakpoint("<text>#3")
সেখানে একটি ব্রেকপয়েন্ট সেট করতে।
কোডটিতে এখনও কিছু সীমাবদ্ধতা রয়েছে (এবং সম্ভবত বাগগুলি); আমি ঠিক করছি