Odd behavior from GDB while trying to cross-debug an embedded Linux application.
Some background:
The application normally runs on an embedded platform. Currently, for development purposes, I have the rootfs located @ /exports and the target is communicating over NFS. That way I can make a change on my local system, save the application @ /exports, and run the altered version to see if it will work without having to do a full install on the target itself.
Following this guide I was able to get GDB debugging working or at least I thought I was. However, as soon as I altered my code, built my project and copied/replaced the application with the altered application I received the following errors:
As I mentioned I believe this gdbserver error may be erroneous and explaining why might be tricky so here goes. As I mentioned GDB seemed to be working. For instance, here is the GDB output I was getting:
Truncated/partial Eclipse Debugger Console output (before compiling and copying application):
So, like expected, the application runs and pauses at main. I can then resume the application and debug whatever I need. In fact, I used it to debug a problem then made a change and tested it. It worked, great! However, as soon as I went to debug the application for a different problem I received the errors you read earlier. So why do I think the gdbserver error is erroneous? Well because both applications are using the same exact version of glibc. In fact, the only differences between the two applications is the changes I made to the code and that code works, I know because I tested it.
That being said I am chooseing, XD, to ignore the error reported in the serial terminal and am concentrating on the errors reported by Eclipse, specifically this jumped out at me:
Not sure why there would be a remote communications error, any ideas what might be happening here? Are these glibc errors actually red herrings?
Last edited by Circuits; 02-28-2019 at 02:24 PM..
Reason: Attempting to make more sense XD
Just to be sure I remounted a brand new copy of the rootfs from a branch and then downloaded the Codebase for that branch and repeated the above exercise and got the same behavior. Another thing I find odd, in the debugger console at the end of the output I showed above it says:
but it's actually frozen. Entering y or n does nothing. So I have to manual terminate the debugging session.
I tried running gdb-multiarch from a terminal instead of using it through Eclipse and ended up with similar output except right at the end it says:
So, this doesn't seem to be an Eclipse problem. Maybe it is a gdb-multiarch problem?
EDIT: I take that back the output is jumping all over I tried again running gdb-multiarch with sudo and ended up with the same output as before, no mention of a seg fault.
@Corona688 I reproduced the error without making any changes to the code to be sure that the changes I was making weren't effecting anything. I now believe the error to be a communications error with gdb-server on the embedded side. Gdb-server was installed onto the embedded target something like 5 or 6 years ago while gdb-multiarch is brand new.
Hi Folks,
Before I go off and start checking I'm just wondering if anyone has seen this behaviour before.
# passwd e825390
Changing password for user e825390.
New password:
Retype new password:
Retype new password:
passwd: all authentication tokens updated successfully.
As you can... (2 Replies)
I'm sorry if the title is really criptic, but I don't know how to phrase my problem.
I know I can't really ask for a solution, and I normally wouldn't but this is really escaping my abilities.
Antefacts.
I developed a program using the zeromq messaging library.
I got to a point where the... (11 Replies)
Hi All
I know How to attach a process to beubg it .But for my application I am using client as well server.Both are two separate process .Suppose I need to debug both .How to attach both of them together .Or I have to attach them separetly .
Suppose client process id is 1325 and server is... (2 Replies)
Hi all,
(gdb) target remote 192.168.185.196:1389
Remote debugging using 192.168.185.196:1389
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
0x2fbd0800 in ?? ()
(gdb) l
1 ... (0 Replies)
I created one file (test.cpp)and complied it and get the executable file(test) and run it.It is giving the out put but when I am trying to debug that executable.I am getting the error --
please tell me the solutions??
Thanks in advance ..... (2 Replies)
If an executalbe file has several parameters, gdb can not pass parameters correctly. Let us see:
run:
./executablefile1 agr1 arg2 arg3
debug:
gdb executablefile1
run executalbefile1 arg1 arg2 arg3
then argv : executablefile1
argv : executablefile
argv : arg1
... (3 Replies)
Hi, We have some troubles with our HP server (rx4640) running HP-UX 11.31. The server is attached to a JBod cabinet. If the JBod cabinet is powered on and we power on the server after then HP-UX can't find the devices (disks) at the cabinet. Does not help to run an ioscan -fnC disk. But if I power... (3 Replies)
Hello, I have been working on a what I thought was a fairly simple script for installing a software kit on Linux and Unix
I am not new to scripting but am far from being fluent in sh scripting.
any assistance would be appreciated.
I have an odd bug occuring when executing the script.
When... (2 Replies)