Re: Hi, Needs suggestions for finding and fixing stack/memory corruption when calling a function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 24, 2011 at 7:08 AM, ern0 <ern0@xxxxxxxxxxxxx> wrote:
> Sounds like wrong compilation. Have you recompiled both the caller and the
> callee functions? Is the compiling target set correctly (btw ARM integers
> are always put on 32-bit boundaries)? What are the types of the parameters?
> Try to change its order. Finally, if nothing works, pass them different way,
> one-by-one (setFirst(), setSecond(), SetThirdAndperform()) or with pointers,
> I mean foo(int*) instead of foo(int).
>

Thanks for reply and suggestions. Both functions are part of single
application and I tried rebuilding all of them again. For now I added
two more temporary arguments between 1st and 2nd arguments and the
required arguments getting correct values thats why I am assuming that
by adding temporary variables we moved the memory corruption from real
arguments into temporary arguments. After adding these arguments my
function is behaving correctly so for now this is a work-around _but_
I want to figure-out its proper fix (as the same sort of issue we
faced in our cgi based web-pages code some weeks earlier).

Hence I needs suggestion that is this really a memory corruption or
some compiler issues ? If its a compiler issue then its not a big
problem but if its memory corruption issue then we have to _fix_ it
asap.

My compilation arguments are:

* Compilation ----- armv5l-linux-g++ -Wall -Wno-write-strings
-mcpu=arm9 -Os -DARM9_LINUX_GCC -D_GNU_SOURCE -DUNIX -pipe -fPIC -c -o
xxxxxxxxxxx.o xxxxxxxxxxx.cc

* Linking Shared Library ----- armv5l-linux-g++ -shared -o xxxxxx.so

* Linking Executable ----- armv5l-linux-g++ -Wl,-rpath,/mnt/apps/lib
-Wall -Wno-write-strings -mcpu=arm9 -Os -DARM9_LINUX_GCC -D_GNU_SOURCE
-DUNIX -pipe -s ..........


Thanks,

Fawad Lateef


> On Mon, May 23, 2011 at 16:41, Fawad Lateef <fawadlateef@xxxxxxxxx> wrote:
>>
>> Hello,
>>
>> I need some suggestions about how-to approach, find and fix a memory
>> corruption issue which is happening in a C/C++ very complex and large
>> code (code evolved over several years). Code is running on AT91SAM9260
>> (armv5l architecture; single processor with preemption enabled) and
>> completely in Linux user-space.
>>
>> The problem is:
>>
>> -- We are calling a function which has three integer arguments.
>> With-in that function 2nd and 3rd arguments always gets corrupted
>> while 1st argument is fine. Just before calling that function printing
>> arguments is fine.
>>
>> Now it will be good if I can get some suggestions about whats
>> happening and how-to look into this problem. I am thinking that there
>> is some memory/stack corruption happening somewhere.
>>
>> Thanks in advance.
>>
>> -- Fawad Lateef
>> --
>> To unsubscribe from this list: send the line "unsubscribe
>> linux-c-programming" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> ern0
> Haben Sie Fragen?
>
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux