Re: Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Abhi Arora <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CADqM=-xidiVXKEmEd6w5_D79xUr_Jiqq=Cn3FqVodDf4T83P4Q@mail.gmail.com>
I will try to add debug symbols of libcurl and regenerate the crash.
However, I also want to understand in which positive scenario (,i.e., stack
is not corrupted) I can get this message and what does that mean?

Consider the last two stack frame in Thread 1:

#5  0x769ec986 in curl_easy_perform () from
/opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
#6  0x76eb433e in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

1. Does it mean stack frame #6 is similar to stack frame #7 (which is not
printed?)? And that's why gdb stopped itself at #6 assuming #7 could be
corrupted?
2. Does it compare whole stack frame (all the bytes) with the neighbour
stack frame?
3. Can you please help me with a scenerio when two stack frame can be
similar (when stack is not corrupted)?

On Mon, Jan 27, 2020 at 7:01 PM Christian Biesinger <[email protected]>
wrote:

>
>
> On Sun, Jan 26, 2020, 17:24 Abhi Arora <[email protected]> wrote:
>
>> I am having an application with 16 Thread in ARM board running Linux. My
>> problem crashed (Segmentation Fault) and I got the core dump. I was
>> analyzing it and found out I was getting "Backtrace stopped: previous
>> frame
>> identical to this frame (corrupt stack?)" message for each of the thread
>> except the "main" thread.
>>
>> I have posted backtrace of "main", thread that caused SEGV FAULT and a
>> thread which was working fine.
>>
>> 1. I want to know why this message is coming up? What does this mean?
>>     One possibility is corrupt stack but what other times it can show up?
>>                  Recursive function call?
>> 2. I am not sure how to get more information from Thread 1. I want to know
>> which function has called "curl_easy_perform". I want to get complete
>> backtrace of Thread 1. I tried to "set $sp = " but looks like I can't
>> modify the SP. I want someone to help with an article to unstack my Thread
>> 1 further. Please advise.
>
>
> You should try to install debug symbols for libcurl. GDB can't always
> unwind stacks without symbols.
>
> FWIW, the stack for thread 5 is complete despite the message (it has
> start_thread in it).
>
> Christian
>
>
>> Thread 5 (LWP 3238):
>> #0  __libc_do_syscall () at libc-do-syscall.S:48
>> #1  0x76ab0b00 in __GI___select (nfds=6, readfds=readfds@entry
>> =0x7563ac58,
>> writefds=writefds@entry=0x0, exceptfds=exceptfds@entry=0x0,
>> timeout=timeout@entry=0x7563ac38)
>>     at
>> /usr/src/debug/glibc/2.28-r0/git/sysdeps/unix/sysv/linux/select.c:41
>> #2  0x004a2ace in Isom::Checksafetybuttons (this=this@entry=0x158f780) at
>>
>> /home/abhishek/develop/gateway-app/GatewayApp/source/WebServer/isom.cpp:292
>> #3  0x004a3834 in StartIsom () at
>>
>> /home/abhishek/develop/gateway-app/GatewayApp/source/WebServer/isom.cpp:592
>> #4  0x00486494 in ns_Isom::isom_start_function (ptr=0x0) at
>>
>> /home/abhishek/develop/gateway-app/GatewayApp/source/GatewayAppMain.cpp:646
>> #5  0x76cc4afa in start_thread (arg=0xa9c8b261) at
>> /usr/src/debug/glibc/2.28-r0/git/nptl/pthread_create.c:486
>> #6  0x76ab538c in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:73 from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/lib/libc.so.6
>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>
>> Thread 2 (LWP 3204):
>> #0  __libc_do_syscall () at libc-do-syscall.S:48
>> #1  0x76cc5b18 in __GI___pthread_timedjoin_ex (threadid=1873773472,
>> thread_return=0x0, abstime=<optimized out>, block=<optimized out>)
>>     at /usr/src/debug/glibc/2.28-r0/git/nptl/pthread_join_common.c:89
>> #2  0x76c40f3a in __gthread_join (__value_ptr=0x0, __threadid=<optimized
>> out>)
>>     at
>>
>> /usr/src/debug/gcc-runtime/7.3.0-r0/arm-fslc-linux-gnueabi/libstdc++-v3/include/arm-fslc-linux-gnueabi/bits/gthr-default.h:668
>> #3  std::thread::join (this=this@entry=0x7ebe1784) at
>> /usr/src/debug/gcc-runtime/7.3.0-r0/libstdc++-v3/src/c++11/thread.cc:136
>> #4  0x00470198 in main (argc=<optimized out>, argv=<optimized out>) at
>>
>> /home/abhishek/develop/gateway-app/GatewayApp/source/GatewayAppMain.cpp:599
>>
>> Thread 1 (LWP 3751):
>> #0  0x769ec67a in Curl_strncasecompare () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #1  0x769ead58 in Curl_checkheaders () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #2  0x769de8fa in Curl_http () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #3  0x769f0e5c in multi_runsingle () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #4  0x769f1708 in curl_multi_perform () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #5  0x769ec986 in curl_easy_perform () from
>>
>> /opt/iotgw-debug/2.5.3/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib/libcurl.so.4
>> #6  0x76eb433e in ?? ()
>> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.