सबसे छोटा कोड जो एक SIGSEGV उठाता है


जवाबों:


113

सी, 5 अक्षर

main;

यह एक चर घोषणा है - intप्रकार निहित है (बी भाषा से कॉपी की गई सुविधा) और 0डिफ़ॉल्ट मान है। जब इसे निष्पादित किया जाता है तो एक संख्या (संख्या निष्पादन योग्य नहीं होती है), और कारणों को निष्पादित करने की कोशिश करता है SIGSEGV

इसे ऑनलाइन आज़माएं!


5
@ मैकमेड: वास्तव में, यह है 0staticचर के रूप में शुरू 0, और main;है static, के रूप में मैं इसे बाहर समारोह की घोषणा की। c-faq.com/decl/initval.html
कोनराड बोरोस्की

16
पिछली बार जब मैं इस चीज़ के साथ खेला था, तो मुझे लगा कि सीफ़ॉल्ट का एक अलग कारण है। मुख्य कॉल करने से सबसे पहले आप मुख्य स्थान पर कूदते हैं, मूल्य नहीं, एक और बात mainएक इंट है, यह स्थित है .bss, आमतौर पर फ़ंक्शन में स्थित होते हैं .text, जब कर्नेल योगिनी कार्यक्रम को लोड करता है तो यह एक .textगैर के लिए एक निष्पादन योग्य पृष्ठ बनाता है के लिए -executable .bss, इसलिए मुख्य कॉल करके, आप एक गैर-निष्पादन योग्य पृष्ठ पर जाते हैं, और ऐसे पृष्ठ पर कुछ निष्पादित करना एक सुरक्षा दोष है।
मनिएप

23
हां, सी में segfaults बहुत डिफ़ॉल्ट हैं: P
पॉल ड्रेपर

1
main __attribute__((section(".text#")))=0xc3;एफटीएफवाई (कम से कम यह मेरे x86 पर दुर्घटनाग्रस्त हुए बिना लौटना प्रतीत होता है)।
4

2
@jozxyqk या छोटा const main=195;,। जैसा कि दिलचस्प है कि यह काम कर रहा है, इस कोड गोल्फिंग चुनौती का लक्ष्य कोड segfault बनाना था, काम नहीं :)।
कोनराड बोरोवस्की

74

मारपीट, ११      

kill -11 $$

44
11 वर्णों में संकेत 11। वैध लगता है।
nyuszika7h

12
@ nyuszika7h मैं आपकी टिप्पणी को आगे बढ़ाने जा रहा हूं, लेकिन अभी आपके पास 11 upvotes हैं, इसलिए मैं इसे उस पर छोड़ने जा रहा हूं। : पी
हाइपरनेत्रिनो

3
@AlexL। अन्य लोगों को लगता है कि खराब हो गया है :(
theonlygusti

2
@theonlygusti हाँ ... यह बहुत बुरा है। :( ओह, ठीक है, तो मैं इसे अब
बढ़ा

2
42 upvotes तक, कोई टौचे नहीं!
seadoggie01

39

असेंबली (लिनक्स, x86-64), 1 बाइट

RET

यह कोड segfaults है।


7
MSDOS .com फ़ाइल के रूप में, यह बिना किसी त्रुटि के चलता और समाप्त होता है।
JB

10
मेरी बात: सिर्फ "असेंबली" को निर्दिष्ट करना इसे सेगफॉल्ट बनाने के लिए पर्याप्त नहीं है।
JB

52
@ जेबी: एमएस डॉस पर, कोई भी कार्यक्रम कभी भी विभाजन दोष उत्पन्न नहीं करेगा । ऐसा इसलिए है क्योंकि एमएस डॉस वास्तविक मोड में चलता है, जहां मेमोरी प्रोटेक्शन कोई भी नहीं है।
celtschk

1
@celtschk IIRC NTVDM कुछ भी नहीं पते पर निकल जाएगा, और जिन्हें MS-DOS को आवंटित नहीं किया जाएगा।
ζ--

2
@celtschk: आप इसे वैसे भी सेगफ़ॉल्ट कर सकते हैं: mov bx, 1000h; shr ईबेक्स, 4; Mov eax, [ebx] -> CPU अंतर्निहित SEGV को उठाता है (AFAIK हालांकि इसे संभालने के लिए कोई नहीं है)।
जोशुआ

26

अजगर 2, 13

exec'()'*7**6

विंडोज c00000fd (स्टैक ओवरफ्लो) के एक त्रुटि कोड की रिपोर्ट करता है जो मुझे लगता है कि विभाजन दोष का एक उपप्रकार है।

एलेक्स ए और मेगो के लिए धन्यवाद, यह मैक और लिनक्स सिस्टम पर भी विभाजन दोष पैदा करने की पुष्टि करता है। अजगर आपके कार्यक्रमों को आंशिक रूप से दुर्घटनाग्रस्त करने के लिए पसंद की भाषा है।


7
Segmentation fault: 11मैक पर
एलेक्स ए।

7
Segmentation fault (core dumped)लिनक्स पर
Mego

क्या यह पहले लटका हुआ है?
मेगा मैन

1
@MegaMan समाप्त करने के लिए एक लंबा समय लेने के रूप में? नहीं, 7 ** 6 केवल 100K के बारे में है इसलिए कोई बोधगम्य देरी नहीं है।
feersum

यह काम क्यों करता है? यह मैक ओएस पर पायथन 3.6.8 पर नहीं लगता है।
मैक्स गैसनर

22

pdfTeX (51)

\def~#1{\meaning}\write0{\expandafter~\string}\bye

यह वास्तव में शायद एक बग है , लेकिन यह मूल टीएक्स में मौजूद नहीं है, जिसे नूथ द्वारा लिखा गया है: कोड को संकलित करने के tex filename.texबजाय pdftex filename.texएक सेगफॉल्ट का उत्पादन नहीं करता है।



17

पायथन, 33 वर्ण

>>> import ctypes;ctypes.string_at(0)
Segmentation fault

स्रोत: http://bugs.python.org/issue1215#msg143236

अजगर, 60 अक्षर

>>> import sys;sys.setrecursionlimit(1<<30);f=lambda f:f(f);f(f)
Segmentation fault

स्रोत: http://svn.python.org/view/python/trunk/Lib/test/crashers/recursive_call.py?view=markup

यह पायथन संस्करण है जिसका मैं परीक्षण कर रहा हूं:

Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin

सामान्य तौर पर अजगर दुभाषिया को दुर्घटनाग्रस्त करना मुश्किल है, लेकिन ऊपर चयनात्मक अपमानजनक है ...


16

फोर्थ - 3 वर्ण

0 @

( @एक भ्रूण है)


1
अब तक का सबसे छोटा, जो आधुनिक प्रणालियों पर काम करेगा।
डेमी

2
कौन सा फोर्थ? Gforth सिर्फ "अमान्य स्मृति पता" कहता है
बिल्ली

15

सी, 18

main(){raise(11);}

क्या आपको कोड सूची में #include <signal.h> जोड़ना होगा?
फ्लोरियन कैस्टेलन

5
@FlorianCastellane: C90 और लोअर में, किसी भी फ़ंक्शन कॉल के लिए एक दृश्यमान घोषणा के बिना किया जाता है, संकलक इसे स्पष्ट रूप से घोषित करता है int func()intअनिर्दिष्ट मानकों को लेते हुए, एक फ़ंक्शन लौट रहा है। इस मामले raiseमें एक फ़ंक्शन होता है इंट, इंट तर्क ले रहा है, इसलिए यह काम करता है (भले ही कंपाइलर शिकायत करता है)।
हस्त्कुर्कन

14

पर्ल (<5.14), 9 वर्ण

/(?{??})/

5.14 में रेगेक्स इंजन को फिर से बनाया गया था ताकि इसे इस तरह से दुर्घटनाग्रस्त न किया जा सके, लेकिन अगर आप यह कोशिश करते हैं तो 5.12 और इससे पहले का सीगफॉल्ट होगा।


मैं इसे पर्ल 5.14 (डेबियन) और 5.18 (आर्क लिनक्स) पर पुन: पेश कर सकता हूं। sprunge.us/RKHT
nyuszika7h

पर्ल v5.20.2 (विंडोज़) के साथ पुन: प्रस्तुत किया गया
mehi

14

W32 .com निष्पादन योग्य - 0 बाइट्स

यह अजीब लगेगा, लेकिन 32 बिट विंडोज सिस्टम पर, एक खाली .com फ़ाइल बनाने और निष्पादित करने से एक सेगफॉल्ट हो सकता है, जो ... कुछ पर निर्भर करता है। डॉस सिर्फ इसे स्वीकार करता है (8086 में कोई मेमोरी मैनेजमेंट नहीं है, इसमें कोई भी गलत सेगमेंट नहीं है), और 64 बिट विंडोज इसे चलाने से इनकार करते हैं (x86-64 में कोई .86 फ़ाइल चलाने के लिए कोई v86 मोड नहीं है)।


13

ब्रेनफक (2)

<.

हां, यह कार्यान्वयन-निर्भर है। SIGSEGV एक अच्छे संकलक से संभावित परिणाम है।


4
कैसे एक संकलक है जो उस "अच्छे" पर segfaults करता है? जिसका <या तो कोई असर नहीं होना चाहिए या चारों ओर लपेटना चाहिए।
nyuszika7h

12
तुरंत सीमा उल्लंघन पर रनटाइम त्रुटि उत्पन्न करना सबसे अच्छा है क्योंकि यह प्रोग्रामर को बग को जितनी जल्दी हो सके ढूंढने और ठीक करने देता है। छोटी गाड़ी को दुर्घटनाग्रस्त होने से पहले थोड़ी देर के लिए और भ्रष्ट मेमोरी को चलाने दें, इससे समस्या का निदान मुश्किल हो जाता है। जैसा कि आप सुझाव देते हैं, दुर्घटना को पूरी तरह से रोकना, सबसे खराब है; प्रोग्रामर को प्रोग्राम "वर्किंग" मिल सकता है और फिर सार्वजनिक रूप से अपमानित किया जा सकता है जब यह मानक संकलक और दुभाषियों पर क्रैश हो जाता है।
डैनियल क्रिस्टोफ़नी

1
इसके विपरीत, रनटाइम से पहले सीमा उल्लंघन को पकड़ना सामान्य रूप से संभव नहीं है, और न ही विशेष रूप से उन मामलों में उपयोगी है जहां यह संभव है। अधिक वर्णनात्मक रनटाइम त्रुटि उत्पन्न करना ठीक होगा, लेकिन ऑपरेटिंग सिस्टम को इसे सेगफॉल्ट के रूप में पकड़ना बहुत अच्छा है क्योंकि इसमें कोई गति लागत नहीं है। (यदि यह स्पष्ट नहीं है, तो कंपाइलर स्वयं सेगफल्ट नहीं करता है - यह निष्पादन योग्य है कि जैसे ही सीमा से बाहर स्मृति तक पहुँचने की कोशिश करता है।)
डैनियल क्रिस्टोफ़ानी

4
क्या आप एक कार्यान्वयन प्रदान कर सकते हैं जो इस व्यवहार को उत्पन्न करता है और इस चुनौती को पोस्ट करने से पहले बनाया गया था? यदि नहीं, तो यह उत्तर अमान्य है।
मेगो

1
सीमा चेक विशिष्ट लागू कर रहे हैं, इसलिए मुझे यकीन है कि कुछ ऐसे हैं जो इस पर त्रुटि करेंगे। किसी भी SIGSEGV हालांकि होगा? मुझे शक है। हालाँकि, बड़ी संख्या में प्रोग्राम हैं जो बायीं ओर रैपिंग सरणी पर निर्भर करते हैं। यह दोनों किनारों पर बढ़ते भंडारण के बजाय सुविधाजनक हो सकता है।
captncraig

12

हास्केल, 31

foreign import ccall main::IO()

यह GHC के साथ संकलित होने और चलाने पर एक segfault का उत्पादन करता है। कोई एक्सटेंशन फ़्लैग की आवश्यकता नहीं है, क्योंकि हास्केल 2010 मानक में फॉरेन फंक्शन इंटरफ़ेस है।


10

सी - 11 (19) 7 (15) 6 (14) 1 वर्ण, एटी एंड टी x86 कोडांतरक - 8 (24) कविता

सी संस्करण है:

*(int*)0=0;

पूरा कार्यक्रम (काफी आईएसओ-अनुरूप नहीं है, मान लें कि यह K & R C है) 19 वर्ण लंबा है:

main(){*(int*)0=0;}

कोडांतरक प्रकार:

orl $0,0

पूरा कार्यक्रम 24 वर्ण लंबा है (केवल मूल्यांकन के लिए, क्योंकि यह वास्तव में कोडांतरक नहीं है):

main(){asm("orl $0,0");}

संपादित करें :

C वेरिएंट की एक जोड़ी। वैश्विक पॉइंटर वैरिएबल के पहले शून्य-प्रारंभिक उपयोग का उपयोग करता है:

*p;main(){*p=0;}

दूसरा अनंत पुनरावृत्ति का उपयोग करता है:

main(){main();}

अंतिम संस्करण सबसे छोटा है - 7 (15) वर्ण।

संपादित करें 2 :

एक और वैरिएंट का आविष्कार किया जो उपरोक्त में से किसी से भी छोटा है - 6 (14) वर्ण। यह मानता है कि शाब्दिक तार को केवल पढ़ने वाले सेगमेंट में रखा जाता है।

main(){*""=0;}

संपादित करें 3 :

और मेरा आखिरी प्रयास - 1 वर्ण लंबा:

P

बस इसे इस तरह संकलित करें:

cc -o segv -DP="main(){main();}" segv.c

3
सी में मुख्य नहीं है ; केवल 5 अध्याय
आर्य

1
: लिंकर यह जांच नहीं करता है कि मुख्य कार्य है या नहीं। यह सिर्फ लोडर के पास है और वापस सिगसेव
आर्य

1
@FUZxxl इस मामले mainमें एक शून्य-आरंभिक वैश्विक int वैरिएबल है, इसलिए हमें जो कुछ मिलता है वह कुछ शून्य बाइट्स निष्पादित करने का प्रयास करने का एक परिणाम है। X86 में यह कुछ ऐसा होगा add %al,(%rax)जो पूरी तरह से वैध निर्देश है जो मेमोरी में संग्रहीत पते पर पहुंचने की कोशिश करता है %rax। एक अच्छा पता होने की संभावनाएं कम से कम हैं।
अलेक्जेंडर बाकुलिन

6
बेशक अंतिम प्रविष्टि का उपयोग हर चीज के लिए किया जा सकता है, आपको बस सही संकलक तर्कों की आपूर्ति करनी होगी। जो इसे किसी भी कोड गोल्फ प्रतियोगिता का स्वत: विजेता बनाना चाहिए। :-)
celtschk

5
आमतौर पर कंपाइलर फ्लैग के अलावा अन्य जो भाषा संस्करण का उपयोग करते हैं, को कुल की ओर गिना जाता है।
जेरी यिर्मयाह

9

डीसी - 7 वर्ण

[dx0]dx

एक ढेर अतिप्रवाह का कारण बनता है


काम करता है, लेकिन क्या आप विस्तृत कर सकते हैं? ऐसा व्यवहार क्यों करता है?
स्टीफन गौरिचोन

2
[dx0]dx0स्टैक पर स्टोर , फिर dशीर्ष स्टैक तत्व को डुप्लिकेट करता है, फिर xशीर्ष स्टैक तत्व ( dx0) को पॉप करता है और इसे निष्पादित करता है। जो शीर्ष स्टैक तत्व को डुप्लिकेट करता है, और इसे निष्पादित करना शुरू कर देता है ... 0पूंछ कॉल होने से रोकने के लिए वहां होने की आवश्यकता है, इसलिए वे सभी का निर्माण करते हैं।
बेन मिलवुड

8

पर्ल, 10/12 चार्ट

एक थोड़ा cheatish समाधान बंद एक चार दाढ़ी बनाने के लिए है जॉय 'एडम्स बैश चाल :

kill 11,$$

हालांकि, पर्ल में एक वास्तविक सेगफॉल्ट प्राप्त करने के लिए, unpack pस्पष्ट समाधान है:

unpack p,1x8

तकनीकी रूप से, यह सेगफॉल्ट की गारंटी नहीं है , क्योंकि पता 0x31313131 (या 0x3131313131313131 64-बिट सिस्टम पर) बस संयोग से वैध पते के स्थान को इंगित कर सकता है। लेकिन बाधाओं इसके खिलाफ हैं। इसके अलावा, यदि पर्ल को कभी उन प्लेटफ़ॉर्म पर पोर्ट किया गया है जहाँ पॉइंटर्स 64 बिट्स से अधिक हैं, तो x8इच्छा को बढ़ाना होगा।


1
यह क्या 1x8चीज है?
हेंस कर्प्पिला

@ हन्नेसकार्पिला यह लिखने का एक छोटा तरीका है"11111111".
इल्मरी करोनन

8

अजगर ३३

import os
os.kill(os.getpid(),11)

अजगर में संकेत 11 (SIGSEGV) भेजना।


2
इसके अलावा 33 वर्ण: from os import*औरkill(getpid(),11)
टिमटेक

8

OCaml, 13 बाइट्स

Obj.magic 0 0

यह फ़ंक्शन का उपयोग करता है Obj.magic, जो किसी भी दो प्रकारों को अनसुना करता है । इस स्थिति में, यह 0 (तत्काल मान 1 के रूप में संग्रहीत, जीसी द्वारा उपयोग किए जाने वाले टैग बिट के कारण) एक फ़ंक्शन प्रकार (एक पॉइंटर के रूप में संग्रहीत) के कारण होता है। इस प्रकार, यह पता 1 को निष्क्रिय करने की कोशिश करता है, और निश्चित रूप से सेगफॉल्ट होगा।


1
it coerces 0 (stored as the immediate value 1)- 0 को 1 के रूप में क्यों संग्रहीत किया जाता है?
स्काईलर

1
@ स्टाइलर एडिट देखें
डेमी

1
Obj.magic()0एक चार छोटा है :)
बेन मिलवुड

8

बैश, 4 बाइट्स

golfed

. $0

पुन: स्क्रिप्ट को अपने आप में शामिल करें।

व्याख्या की

पुनरावर्ती "स्रोत" (।) ऑपरेशन अंततः एक स्टैक अतिप्रवाह का कारण बनता है, और जैसा कि बैश लिबासिगसेव के साथ एकीकृत नहीं करता है , इसके परिणामस्वरूप एक SIGSEGV होता है।

ध्यान दें कि यह एक बग नहीं है, लेकिन एक अपेक्षित व्यवहार है, जैसा कि यहां चर्चा की गई है

परीक्षा

./bang 
Segmentation fault (core dumped)

यह ऑनलाइन की कोशिश करो!


8

दरअसल , 17 16 11 10 9 बाइट्स

⌠[]+⌡9!*.

इसे ऑनलाइन आज़माएं!

यदि उपरोक्त क्रैश नहीं करता है, तो संख्या बढ़ाने की कोशिश करें (बहु-अंक संख्या वास्तव में एक अग्रणी बृहदान्त्र के साथ निर्दिष्ट हैं)

अजगर में एक बग का शोषण करके दुभाषिया को itertools.chainनष्ट कर देता है जिसमें गहरी नेस्टेड ऑब्जेक्ट शामिल होते हैं, जो वास्तव में +ऑपरेटर को लागू करने के लिए उपयोग करता है ।


7

C # - 62

System.Runtime.InteropServices.Marshal.ReadInt32(IntPtr.Zero);

संपादित करें: २३

unsafe{int i=*(int*)0;}

यह काम करने के लिए / असुरक्षित के साथ संकलन करना चाहिए। किसी कारण से मुझे समझ नहीं आ रहा है, *(int*)0=0बस एक NullReferenceException को फेंकता है, जबकि यह संस्करण उचित पहुंच उल्लंघन देता है।


int i=*(int*)0;रिटर्न मेरे लिए एक NullReferenceException।
पीटर ओल्सन

आप एक नकारात्मक स्थान तक पहुँचने की कोशिश कर सकते हैं, जैसे *(int*)-1=0और एक पहुँच उल्लंघन प्राप्त कर सकते हैं।
पीटर ओल्सन

विशेष अपवाद सिर्फ वही है जो clr इसे लपेटता है, और नगण्य है। ओएस ही वास्तव में इन सभी मामलों में सेग दोष देता है।

कारण है कि *(int*)0=0एक अपवाद फेंकता अनुकूलन के कारण संभावना है। विशेष रूप से, के लिए जाँच की लागत से बचने के लिए null, ऑप्टिमाइज़र अशक्त जाँच को हटा सकता है, लेकिन जब एक segfault होता है तो इसे उचित के रूप में पुनर्व्यवस्थित कर सकता है NullReferenceException
कोनराड बोरोस्की

7

PicoLisp - 4 वर्ण

$ pil
: ('0)
Segmentation fault

यह अभिप्रेत व्यवहार है। जैसा कि उनकी वेबसाइट पर वर्णित है:

यदि कुछ प्रोग्रामिंग लैंग्वेज "स्विस आर्मी नाइफ ऑफ़ प्रोग्रामिंग" होने का दावा करती हैं, तो पिको लिस्प को "स्कैलपेल ऑफ़ प्रोग्रामिंग" कहा जा सकता है: तीव्र, सटीक, छोटे और हल्के, लेकिन अनुभवहीन के हाथ में भी खतरनाक।


7

F90 - 39 बाइट्स

real,pointer::p(:)=>null()
p(1)=0.
end

संकलन:

gfortran segv.f90 -o segv 

निष्पादन:

./segv 

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7FF85FCAE777
#1  0x7FF85FCAED7E
#2  0x7FF85F906D3F
#3  0x40068F in MAIN__ at segv.f90:?
Erreur de segmentation (core dumped)

सामग्री:

gfortran --version
GNU Fortran (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4

1
अच्छी पहली पोस्ट।
18

6

सी में 19 अक्षर

main(a){*(&a-1)=1;}

यह मुख्य फ़ंक्शन का पता मान को दूषित करता है, इसलिए इसे वापस लौटने पर एक SIGSEGV प्राप्त होता है main


यह स्टैक फ्रेम लेआउट पर निर्भर करता है, इसलिए कुछ आर्किटेक्चर में यह संभवतः विफल नहीं हो सकता है।
अलेक्जेंडर बाकुलिन

6

जे (6)

memf 1

memfमुक्त स्मृति का मतलब है, 1एक सूचक के रूप में व्याख्या की गई है।


5

साइथन, 14

यह अक्सर डिबगिंग उद्देश्यों के लिए काम में आता है।

a=(<int*>0)[0]

5

यूनिक्स पीडीपी -11 विधानसभा, 18 बाइट्स बाइनरी, 7 बाइट्स स्रोत

(यह मेरे साथ एक विषय बन रहा है, हो सकता है क्योंकि यह एकमात्र ऐसी भाषा है जिसे मैं जानता हूं कि यहां कोई और नहीं करता है।)

inc(r0)

आर 0 के प्रारंभिक मूल्य द्वारा संबोधित एकल बाइट में वृद्धि [जो कि प्रोग्राम डेब्यू के अनुसार सिंघ डीबगर के अनुसार 05162] होती है।

0000000 000407 000002 000000 000000 000000 000000 000000 000000
0000020 005210 000000

और, हमेशा की तरह, अंत में बाहर निकलने वाली बाइट्स को पट्टी के साथ हटाया जा सकता है।

मैंने स्रोत को छोटा करने के लिए कुछ प्रयास किए, लेकिन हमेशा सिंटैक्स त्रुटि या SIGBUS प्राप्त करना समाप्त कर दिया।


5

मतलाब - हाँ यह संभव है!

मेरे एक सवाल के जवाब में , अमरो इस क्विक के साथ आया:

S = struct();
S = setfield(S, {}, 'g', {}, 0)

कृपया मैटलैब संस्करण दें - R2015B (और 2016B भी) बस एक त्रुटि फेंकता है: सेटफ़ील्ड (लाइन 56) का उपयोग करने में त्रुटि कम से कम एक सूचकांक आवश्यक है।
फ्लोरियन कैस्टेलन

@FlorianCastellane अभी सभी संस्करणों को आज़माने में सक्षम नहीं है, लेकिन इसकी पुष्टि कुछ संस्करणों में सीगफॉल्ट देने में की गई है, नवीनतम 2014b और सबसे शुरुआती 2012a।
डेनिस जहरुद्दीन

5

जावास्क्रिप्ट शेल, 7 बाइट्स

clear()

पूरी तरह से सब कुछ साफ हो जाता है, न कि केवल वर्तमान गुंजाइश जो स्पष्ट रूप से बहुत सारे बर्क का कारण बनती है जिसके परिणामस्वरूप जेएस उड़ता है और सेगफॉल्टिंग होता है


MDN (document.clear) के अनुसार, यह केवल मोज़िला के पुराने संस्करणों में कुछ करना चाहिए, और फिर भी, आपके अनुभव में वास्तव में क्या होता है?
tomsmeding

@tomsmeding यह window.clear है, FF इसे सीधे प्रकट नहीं करता है, यह एक
स्पिडरमोनकी

5

पायथ, 3 अक्षर

j1Z

यह वह हिस्सा होगा जहां मैं समझाता हूं कि मैं इस उत्तर के साथ कैसे आया, इसके अलावा मेरे पास वैध रूप से कोई सुराग नहीं है । अगर कोई मेरे लिए यह समझा सकता है, तो मैं आभारी रहूंगा।

यहाँ यह एक ऑनलाइन दुभाषिया में है।

व्याख्या

jआधार को वर्ग बनाता है और तब तक खुद को पुनरावर्ती कहता है जब तक कि आधार संख्या के रूप में कम से कम नहीं हो। चूंकि आधार 0 है , ऐसा कभी नहीं होता है। पर्याप्त रूप से उच्च पुनरावर्तन सीमा के साथ, आपको एक सेगफॉल्ट मिलता है।

- डेनिस ♦


कुछ पता लगा! पायथ के स्रोत को ब्राउज़ करने से, मैंने पाया कि यह कोड करता jहै 1और 0, जो आधार में बदलने की कोशिश करता है । क्यों उस segfaults, मुझे पता नहीं है ...10
NoOneIsHere

1
देखें यहाँjआधार को वर्ग बनाता है और तब तक खुद को पुनरावर्ती कहता है जब तक कि आधार संख्या के रूप में कम से कम नहीं हो। चूंकि आधार 0 है , ऐसा कभी नहीं होता है। पर्याप्त रूप से उच्च पुनरावर्तन सीमा के साथ, आपको एक सेगफॉल्ट मिलता है।
डेनिस

@ डेनिस IDEone
NoOneIsHere

@SeeRhino पायथ दुभाषिया पुनरावृत्ति सीमा को 100,000 पर सेट करता है। कम से कम TIO पर, यह एक segfault के लिए पर्याप्त है।
डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.