में कनवर्ट करें मेरे पास एक एमपीआई एप्लिकेशन है जिसमें सी और फोरट्रान दोनों स्रोत शामिल हैं। कभी-कभी यह स्मृति से संबंधित बग के कारण दुर्घटनाग्रस्त हो जाता है, लेकिन मुझे बग खोजने में परेशानी हो रही है (यह किसी और के कोड में कहीं है, जिस समय मैं बहुत परिचित नहीं हूं)। मैं अभी तक इसे जीडीबी के साथ पकड़ने में सक्षम नहीं हूं, लेकिन कभी-कभी एक ग्लिबैक बैकट्रैक आउटपुट जैसा दिखाया गया है।एक libc बैकट्रैक को एक स्रोत पंक्ति संख्या
बग शायद "(main_main_ + 0x3bca) [0x804d5ce]" के करीब है, (लेकिन स्मृति त्रुटि के साथ, मुझे पता है कि यह मामला नहीं हो सकता है)। मेरा सवाल है, क्या किसी को पता है कि कोड की एक विशेष पंक्ति में + 0x3bca या 0x804d5ce को कैसे परिवर्तित किया जाए?
बग को ट्रैक करने पर कोई अन्य सुझाव भी सराहना की जाएगी। मैं जीडीबी की मूल बातें से काफी परिचित हूं।
*** glibc detected *** /home/.../src/finite_element: munmap_chunk(): invalid pointer: 0x09d83018 ***
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x73e42)[0xb7409e42]
/lib/i386-linux-gnu/libc.so.6(+0x74525)[0xb740a525]
/home/.../src/finite_element(main_main_+0x3bca)[0x804d5ce]
/home/.../src/finite_element[0x804e195]
/home/.../src/finite_element(main+0x34)[0x804e1e8]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb73af4d3]
/home/davepc/finite-element/src/finite_element[0x8049971]
======= Memory map: ========
08048000-08056000 r-xp 00000000 08:05 1346306 /home/.../src/finite_element
08056000-08057000 r--p 0000d000 08:05 1346306 /home/.../src/finite_element
08057000-08058000 rw-p 0000e000 08:05 1346306 /home/.../src/finite_element
09d1b000-09d8f000 rw-p 00000000 00:00 0 [heap]
b2999000-b699b000 rw-s 00000000 08:03 15855 /tmp/openmpi-sessions-_0/37612/1/shared_mem_pool.babel
b699b000-b6b1d000 rw-p 00000000 00:00 0
b6b31000-b6b3d000 r-xp 00000000 08:03 407798 /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
b6b3d000-b6b3e000 r--p 0000b000 08:03 407798 /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
b6b3e000-b6b3f000 rw-p 0000c000 08:03 407798 /usr/lib/openmpi/lib/openmpi/mca_osc_rdma.so
<snip>
धन्यवाद ...
हाँ, यह है कि यह किया था। धन्यवाद। "0x804d5ce (mpi_Main_trian_kernel.f: 374) main_main में है" लाइन 374 है: पुनःआवंटन (फेस) ताकि बग, इसकी सिर्फ जहां यह दिखाया जा रहा है नहीं है। इसे ट्रैक करने पर कोई सुझाव? – davepc
@ डेवपैक: आपकी बग संभावित भ्रष्टाचार की संभावना है। आप इसे पहचानने के लिए 'valgrind' का उपयोग करने का प्रयास कर सकते हैं। – jxh