সুতরাং আমি ভালগ্রাইন্ডের কাছ থেকে কিছু রহস্যময় অবিচ্ছিন্ন মানগুলির বার্তা পেয়েছি এবং এটি খারাপ রহস্যটি কোথা থেকে এসেছে তা বেশ রহস্যজনক।
দেখে মনে হচ্ছে যে ভ্যালগ্রিন্ডটি সেই স্থানটি দেখায় যেখানে ইউনিটযুক্ত মানটি ব্যবহার করা শেষ হয় তবে অবিরাম মানটির উত্স হয় না।
==11366== Conditional jump or move depends on uninitialised value(s)
==11366== at 0x43CAE4F: __printf_fp (in /lib/tls/i686/cmov/libc-2.7.so)
==11366== by 0x43C6563: vfprintf (in /lib/tls/i686/cmov/libc-2.7.so)
==11366== by 0x43EAC03: vsnprintf (in /lib/tls/i686/cmov/libc-2.7.so)
==11366== by 0x42D475B: (within /usr/lib/libstdc++.so.6.0.9)
==11366== by 0x42E2C9B: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/libstdc++.so.6.0.9)
==11366== by 0x42E31B4: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/libstdc++.so.6.0.9)
==11366== by 0x42EE56F: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/libstdc++.so.6.0.9)
==11366== by 0x81109ED: Snake::SnakeBody::syncBodyPos() (ostream:221)
==11366== by 0x810B9F1: Snake::Snake::update() (snake.cpp:257)
==11366== by 0x81113C1: SnakeApp::updateState() (snakeapp.cpp:224)
==11366== by 0x8120351: RoenGL::updateState() (roengl.cpp:1180)
==11366== by 0x81E87D9: Roensachs::update() (rs.cpp:321)
যেমন দেখা যায়, এটি বেশ ক্রিপ্টিক হয়ে যায় .. বিশেষত কারণ যখন এটি ক্লাস :: মেথডএক্স দ্বারা বলা হচ্ছে তখন এটি কখনও কখনও ostream ইত্যাদির দিকে সরাসরি নির্দেশ করে ইত্যাদি সম্ভবত এটি অপ্টিমাইজেশনের কারণে?
==11366== by 0x81109ED: Snake::SnakeBody::syncBodyPos() (ostream:221)
এটার মতই. আমি কি অনুপস্থিত কিছু আছে? অতি দীর্ঘ প্রিন্টফ গোয়েন্দা কাজের অবলম্বন না করে খারাপ মানগুলি ধরার সর্বোত্তম উপায় কী?
হালনাগাদ:
আমি কী ভুল ছিল তা জানতে পেরেছিলাম, তবে আশ্চর্যের বিষয়টি হ'ল, ভালগ্রাইন্ড প্রথমে খারাপ মানটি ব্যবহার করার সময় এটি রিপোর্ট করে নি। এটি একটি গুণ গুণে ব্যবহৃত হয়েছিল:
movespeed = stat.speedfactor * speedfac * currentbendfactor.val;
যেখানে স্পিডফ্যাকটি ছিল এককীকৃত ভাসা। যাইহোক, সেই সময় এটি প্রতিবেদন করা হয়নি এবং যতক্ষণ না মান মুদ্রিত না হওয়া অবধি আমি ত্রুটিটি পেয়েছি .. ভ্যালগ্রাইন্ডের এই আচরণটি পরিবর্তনের জন্য কি কোনও সেটিংস আছে?