လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အမှားအယွင်းများကို debug လုပ်ရန် Debug_Backnace ကိုမည်သို့ခေါ်ဆိုရမည်နည်း။

အမှားအယွင်းများကို debug လုပ်ရန် Debug_Backnace ကိုမည်သို့ခေါ်ဆိုရမည်နည်း။

M66 2025-06-23

PHP Development တွင် လူသတ်မှု () function သည်များသောအားဖြင့်ပရိုဂရမ်ကွပ်မျက်ခြင်းနှင့်ရလဒ်များမှရလဒ်များကိုအဆုံးသတ်သည့်ထုံးစံ function တစ်ခုဖြစ်သည်။ ပရိုဂရမ်ခြွင်းချက်များ၏အရင်းအမြစ်ကိုပိုမိုကောင်းမွန်စွာခြေရာခံနိုင်ရန်အတွက် Debug_BackBacktace () function ကိုပေါင်းစည်းနိုင်ရန်အတွက် Debugebacktace () function ကိုပေါင်းစပ်နိုင်သည်။ ထိုသို့ပြုလုပ်ခြင်းသည်အထူးသဖြင့်ရှုပ်ထွေးသောစီမံကိန်းများသို့မဟုတ်မူဘောင်များတွင်ပြ problems နာများကိုရှာဖွေသည့်အခါ debugging ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။

Debugebacktace ကိုဘာကြောင့်သုံးရတာလဲ။

Debugebacktace () သည် Call Stack ပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုပေးရန် PHP မှပေးသော PHP မှပါ 0 င်သော built-in debugging function ဖြစ်သည်။ ၎င်းမှတဆင့်လက်ရှိ function ကိုခေါ်ဆိုခြင်းလုပ်ငန်းစဉ်တစ်ခုလုံးကိုခေါ်ဆိုခြင်း၏လုပ်ငန်းစဉ်တစ်ခုလုံးကိုကျွန်ုပ်တို့ရှုမြင်နိုင်သည်။ ခေါ်ဆိုမှုဖိုင်အမည်, လိုင်းနံပါတ်,

ပရိုဂရမ်တစ်ခုသည်အမှားတစ်ခုဖွင့်သောအခါသို့မဟုတ်မမျှော်လင့်သောဌာနခွဲတစ်ခုထဲသို့ 0 င်ရောက်သောအခါသို့မဟုတ်မမျှော်လင့်သောဌာနခွဲသို့ပြောင်းရွှေ့ခြင်း () အငြင်းပွားမှုဆိုင်ရာသတင်းအချက်အလက်များကိုအလျင်အမြန်ရှာဖွေခြင်းသည်ဖုန်းခေါ်ဆိုမှုရင်းမြစ်ကိုလျင်မြန်စွာရှာဖွေရန်ကူညီသည်။

Debug_Backchrace ဖြင့် Kill function ကိုအကောင်အထည်ဖော်ပါ

Call Stack output ကိုပေါင်းစပ်ထားသော kill () function ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

<code> function kill ($ message = five five error urob = 1) {echo "& LT; H2 & GT; $ message & lt; / h2 & gt; ပဲ့တင်သံ "& LT; pre & gt;";
 $backtrace = debug_backtrace();

foreach ($backtrace as $index =&gt; $trace) {
    $file = isset($trace['file']) ? $trace['file'] : '[internal function]';
    $line = isset($trace['line']) ? $trace['line'] : '';
    $function = isset($trace['function']) ? $trace['function'] : '';
    $class = isset($trace['class']) ? $trace['class'] : '';
    $type = isset($trace['type']) ? $trace['type'] : '';
    
    echo "#$index $file($line): $class$type$function()\n";
}

echo "&lt;/pre&gt;";

// မလုပ်မနေရမဟုတ်သော:မှတ်တမ်းများကိုဖိုင်များသို့ရေးပါသို့မဟုတ်စနစ်ကိုအဝေးမှ debug
// file_put_contents('/var/log/php_error.log', print_r($backtrace, true), FILE_APPEND);

exit($code);

}
</ code>

နမူနာခေါ်ဆိုမှုမြင်ကွင်း

သင့်ရဲ့စီးပွားရေးယုတ္တိဗေဒရှိ parameter သည်ဗလာကျင်းနေကြောင်းဗလာကျင်းနေကြောင်း, ပရိုဂရမ်ကိုချက်ချင်းရပ်ဆိုင်းပြီးခေါ်ဆိုမှုလမ်းကြောင်းကိုပုံနှိပ်လိုသည်။

<Code> function process ကို ProcessData ($ ဒေတာ) {လျှင် (အချည်းနှီးသော (အချည်းနှီး)) {kill ("ဒေတာဗလာ); } // ယုတ္တိဗေဒအပြောင်းအလဲနဲ့ ... }

အဓိကအကြောင်းရင်း ()
{
$ ဒေတာ = null;
PRASSDATA ($ ဒေတာ);
}

အဓိက ();
</ code>

အပြေးပြီးနောက်အောက်ပါနှင့်ဆင်တူသော output ကိုတွေ့ရလိမ့်မည် (ပုံစံအနည်းငယ်ချိန်ညှိထားသည်):

 အစီအစဉ်ကိုရပ်စဲ:ဒေတာဗလာမဖြစ်နိုင်ပါ

#0 /var/www/html/app.php(12): kill('ဒေတာဗလာမဖြစ်နိုင်ပါ')
#1 /var/www/html/app.php(17): processData(NULL)
#2 /var/www/html/app.php(20): main()

ဤ stack အချက်အလက်များနှင့်အတူကျွန်ုပ်တို့သည်အမှား၏အရင်းအမြစ်နှင့်ပေးပို့လမ်းကြောင်းကိုအလွယ်တကူရှာဖွေနိုင်သည်။

တိုးချဲ့မှုအကြံပြုချက်များ - ပေါင်းစပ်ထားသောသစ်ထုတ်လုပ်ရေးစနစ်သို့မဟုတ်အွန်လိုင်း debugging ပလက်ဖောင်း

Debugging ထိရောက်မှုကိုပိုမိုတိုးတက်စေရန်အတွက် သတ်ရန် () function သည် log function ထဲသို့သတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းသို့မဟုတ် https://m66.net/debuggug/log ကဲ့သို့သော interface တစ်ခုသို့ပို့ခြင်းစသည့်အဝေးမှ debugging 0 န်ဆောင်မှုသို့ပို့နိုင်သည်။ ဥပမာအားဖြင့်:

<code> function function ($ message = 'fatal error error', $ code = 1) {$ backtrace = debug_backtrace ($ backtracktace);
 $payload = [
    'message' =&gt; $message,
    'trace' =&gt; $backtrace,
    'timestamp' =&gt; time(),
];

$ch = curl_init('https://m66.net/api/debug/log');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_exec($ch);
curl_close($ch);

echo "&lt;h2&gt;$message&lt;/h2&gt;&lt;pre&gt;" . print_r($backtrace, true) . "&lt;/pre&gt;";
exit($code);

}
</ code>

ဤနည်းအားဖြင့်ဖွံ့ဖြိုးရေးကာလအတွင်းပြ problem နာအဘို့အ backtrucracking သို့မဟုတ်အွန်လိုင်းစစ်ဆင်ရေးနှင့်ပြုပြင်ထိန်းသိမ်းမှုများအတွက်အမှားသတင်းအချက်အလက်များကိုအဝေးမှစုဆောင်းနိုင်သည်။

အကျဉ်းချုပ်