একটি অনিচ্ছাকৃত-দেখায় তবে ক্র্যাশ-হ্রাসকারী বাগ [বন্ধ]


19

এই ধারণাকে ঘিরে বিভিন্ন ধরণের প্রশ্ন রয়েছে, তবে এগুলি কেবল ক্র্যাশ ঘটানোর সাথে জড়িত বলে মনে হচ্ছে, এর ফলে অনেকগুলি উত্তর এসেছে যা স্পষ্টতই ক্র্যাশ ঘটানোর জন্য ডিজাইন করা হয়েছে। সুতরাং আমি আপনাকে যে চ্যালেঞ্জটি সেট করেছিলাম তা হ'ল কিছু প্রশংসনীয় কোড (যদিও কোডগুলি "অভিপ্রায়" বলে মনে হচ্ছে তা আমি আপনার কাছে ছেড়ে দিচ্ছি), যা পুরো টার্গেট ওএস, বা কেবল নিজেই ক্র্যাশ করে যা তাত্ক্ষণিকভাবে সুস্পষ্ট নয়। (আমি বুঝতে পারি যে "তাত্ক্ষণিকভাবে সুস্পষ্ট" হিসাবে গণনা করা বিষয়ীয়, তবে আশা করি চ্যালেঞ্জটি এখনও যুক্তিসঙ্গতভাবে পরিষ্কার) is

বিজয়ী 5 দিন পরে সর্বাধিক ভোট সহ উত্তর।


কোনও উদ্দেশ্য মানদণ্ড দেওয়া হয়নি বলে ট্যাগ কোড-চ্যালেঞ্জ সরানো হয়েছে।
হাওয়ার্ড 20

2
আমার আসল কোডে এগুলির অনেকগুলি ঘটনা ঘটেছে । যদিও আমি তাদের কোনওটির কথা মনে করতে পারি না।
জো জেড।

সম্পর্কিত: আন্ডারহ্যান্ডেড সি প্রতিযোগিতায় একই লক্ষ্য নিয়ে বেশ কয়েকটি সমস্যা রয়েছে এবং সেগুলির জন্য বেশ কয়েকটি চালাক সমাধান রয়েছে।
ফায়ারফ্লাই

1
আমি এই প্রশ্নটিকে অফ-টপিক হিসাবে বন্ধ করতে ভোট দিচ্ছি কারণ ছদ্মবেশী চ্যালেঞ্জগুলি এখন আর এই সাইটে অন টপিক নয়। meta.codegolf.stackexchange.com/a/8326/20469
বিড়াল

উত্তর:


30

সি, লিনাক্স। রুট হিসাবে চালিত হলে সিস্টেম ক্র্যাশ করে

/* Fork child process, wait 5 seconds and kill it */
pid_t pid = fork();
if(pid =! 0) {
    /* Parent */
    sleep(5);
    kill(pid, 11);
}
else {
    /* Child process. Would contain some code */
}

পরিবর্তন !=করে =!, একটি নির্দোষ তুলনা একটি কার্যক্রমে রূপান্তরিত হয়। এবং দেওয়া হয়েছে যে পিড 1 init, এবং হত্যার initফলে কার্নেল আতঙ্কের সৃষ্টি হয়, এটি আপনার কোড হিসাবে রুট হিসাবে চালাতে চান না :)


1
আরআইএন সিগিলকে অগ্রাহ্য করে, কর্নাল আতঙ্কে আপনাকে অবশ্যই এটি পাঠাতে হবে SIGSEGV, 11 সিগন্যাল
মাল্টিপ্লাইবাইজার0

1
আহ, ইঁদুর। পরিবর্তন করার জন্য সম্পাদনা করা হয়েছে, তবে এটি একে অনেক কম অসম্পূর্ণ করে তোলে। সাইনটার কি খুব কাজ করবে?
ডেনিস কারসেমেকার


3
আমি SIGSEGVসংখ্যার কোড ব্যবহার করে আড়াল করব । সর্বোপরি, এটি একটি ভুল হতে পারে।
কনরাড বোরোস্কি 21

আমি সেই ধারণাটি পছন্দ করি, সম্পাদনা করেছেন :)
ডেনিস কার্সেমেকার

27

সি শার্প

আসুন 0 থেকে 255 পর্যন্ত প্রতিটি বাইট মান সহ বাইটগুলির একটি তালিকা শুরু করি।

List<byte> bytes = new List<byte>();
for (byte i = 0; i <= 255; i++)
{
    bytes.Add(i);
}

জ্ঞানের বাহিরে? আমি স্পষ্টভাবে 256 বাইটের বেশি ইনস্টল থাকা স্মরণ করছি ...

ভক্ষক:

একটি বাইট সর্বদা 255 এর থেকে কম বা সমান হয় Addition সংযোজনটি 255 থেকে 0 এর মধ্যে প্রায় মোড়ানো হয়।


3
এইটা আমাকে বের করার চেয়ে বেশি সময় নিয়েছিল
হানেশ

সি # সংকলকটি কি আপনাকে সতর্ক করে না যে আপনি pbzcnevat jvgu n pbafgnag gung'f bhg bs obhaqf? (না rot13'd হেঁয়ালি লুট)
ডেনিস Kaarsemaker

@ ডেনিস সম্ভবত তা নয়, কারণ lbh pna pbzcner qvssrerag ahzrevp glcrf jvgubhg reebe / jneavat, Naq gur pbafgnag va dhrfgvba vf n inyvq vag।
wchargin

2
ডাউনলোড যদিও এখানে কোনও সতর্কতা নেই।
কেন্ডাল ফ্রে

2
এখানে একটি ডিকোড / এনকোডার রয়েছেstr.toLowerCase().split('').map(function(c) { return c < 'a' || c > 'z' ? c : String.fromCharCode(((c.charCodeAt(0) - 'a'.charCodeAt(0) + 13) % 26) + 'a'.charCodeAt(0)); }).join('')
মোশেক

7

সি

#include <stdio.h>

int main(void) {
   fputs(stdout, "Hello, world!\n");
   return 0;
}

(সংকলক সতর্কতাগুলি এটিকে দূরে সরিয়ে দেবে))


3

জাভাস্ক্রিপ্ট

var arr = [3,6,1,54,2,-4,8,10,3,7]
function qs(a) {
    if (a.length < 2) return a
    var part = a.shift()
    var higher = [], lower = []
    for (var i = 0; i < a.length; i ++) {
        var x = a[i] // *** THIS LINE ***
        (x < part ? lower : higher).push(x)
 }
    return qs(lower).concat([part]).concat(qs(higher))
}
alert(qs(arr))

ওয়ার্কিং কোয়েসকোর্ট, এই মন্তব্য ব্যতীত যে আমি যে মন্তব্যটিতে চিহ্নিত করেছি সেটিতে অর্ধিকোলনের অভাব এটিকে ভুল এবং ক্র্যাশ করার কারণ করে।

এই লাইনের শেষে একটি সেমিকোলন যুক্ত করা এটি ঠিক করে।


0

সি ++

নামগুলি ইনপুট করে এবং এটি একটি ভেক্টরে সংরক্ষণ করে। পতাকা মানটির প্রবেশের পরে নাম মুদ্রণ করে। যদি ব্যবহারকারী আরও নাম নিয়ে চিন্তা করে; যদি তাই হয় তবে ইনপুটসের নাম দিন।

#include <iostream>
#include <string>
#include <vector>
using namespace std;

void print(const vector<string>& v) {

  for (int i = 0; i <= names.size(); i++)
    cout << v[i] << endl;
}

void input(vector<string>& v) {

  string tmp;

  cout << "Enter a list of names seperated by returns: ";

  do {
    getline(cin, tmp);

    if (tmp != "-1")
      v.push_back(tmp);

  } while (tmp != "-1");

  print(v);
}

int main() {

  vector<string> names;

  string tmp;

  do {
    input(names);

    cout << "Do you have any more names to input (y or n)? ";
    cin >> tmp;

  } while (tmp == "y");

  return 0;
}

নন-সি ++, জাভা, সি ব্যবহারকারীদের জন্য ত্রুটিটি print()এর forবিবৃতিতে রয়েছে। এটা হওয়া উচিত for (int i = 0; i < names.size(); i++)। এটি তৈরি করা এবং উপেক্ষা করা একটি সহজ ত্রুটি (যতক্ষণ না আপনি সংকলক বার্তাটি পান) আপনার কেবলমাত্র 1 টি অক্ষর এবং কারণ কখনও কখনও forলুপগুলিতে > অপারেটরটির প্রয়োজন হয় ।


ডান্নো, পড়ার শুরুতে এটি স্পট করেছে। print()পরে কোডে কোথাও রেখে দেওয়া ভাল , যাতে ভুলের আগে আসার আগে পাঠক কিছুটা ক্লান্ত হয়ে পড়েন :)
রুসলান

0

GTB

:""→_[_+"+"→_]

ক্যালকুলেটরটি ক্র্যাশ করেছে কারণ এটি [_+হওয়া উচিত ["_"+তবে এটি যেহেতু নয়, ক্যালকুলেটরটি স্মৃতিশক্তি থেকে চলে যায়, সম্ভাব্যভাবে ভুল উপায়ে র‌্যাম সাফ করে।


3
["_"+এমন চেহারার মতো দেখতে যা আমার সাথে কিছুটা বিরক্ত
corsiKa
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.