Forum: Compiler & IDEs application has requested the Runtime to terminate it in an unusual way.


von Timo P (Gast)


Lesenswert?

ARM EABI für AT91SAM7S128

This application has requested the Runtime to terminate it in an unusual
way. Please contact the application's support team for more information.
make: *** [application/main.o] Error 3

von Timo P (Gast)


Lesenswert?

bitte um Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

Timo P schrieb:
> ARM EABI für AT91SAM7S128
>
> This application has requested the Runtime to terminate it in an unusual
> way. Please contact the application's support team for more information.
> make: *** [application/main.o] Error 3

Da sollte man zuerst einmal identifizieren, welches Programm eigentlich 
mit 'This application' gemeint ist. Ist es der Compiler, der Linker oder 
wer sonst.

So wie das aussieht kommt die Meldung vom make. Also: Welches Programm 
ist gelaufen, bevor make die Meldung gebracht hat?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Hast du das application's support team für die ARM EABI für AT91SAM7S128 
Toolchain bereits kontaktiert?

devkitPro and devkitARM kennen das Problem (und anscheinend NUR diese 
Toolchain)
http://www.coranac.com/tonc/text/setup.htm
http://forums.devkitpro.org/viewtopic.php?f=6&t=119
und weitere...

Ansonsten:
Die Suche nach dem Fehlertext bringt u.a. dies:
http://support.microsoft.com/kb/884538

von Timo P (Gast)


Angehängte Dateien:

Lesenswert?

also, das einzige, was ich an "application" laufen habe, ist Cygwin 
unter WinXP. Darunter läuft mein GCC compiler. desweiteren ist das 
Projekt nur in C, nicht C++.

ich kompiliere mit einer makefile, die ich am anhang habe...

von Timo P (Gast)


Lesenswert?

"im" Anhang....

von Karl H. (kbuchegg)


Lesenswert?

Timo P schrieb:
> also, das einzige, was ich an "application" laufen habe, ist Cygwin
> unter WinXP. Darunter läuft mein GCC compiler. desweiteren ist das
> Projekt nur in C, nicht C++.
>
> ich kompiliere mit einer makefile, die ich am anhang habe...

und?
wer schmiert jetzt ab?
Compiler, Linker?

Wenn Compiler: Welches Source Code File wird gerade compiliert.

Früher ist es bei Microsoft Compilern auch schon mal vorgekommen, dass 
der Compiler die Grätsche machte. Dann identifizierte man, welches 
Source Code File, welche Stelle im Source Code und verändert dann eben 
diese Stelle ein wenig. Oftmals waren es komplizierte arithmetische 
Ausdrücke, denen es sowieso nicht geschadet hat, wenn man sie in 
Einzelteile aufgebrochen hat.

von Timo P (Gast)


Lesenswert?

ich weiß nicht, wie ich herausfinden soll ob compiler oder linker

ich weiß aber eins: das Projekt habe ich vorgesetzt bekommen. Mitsamt 
Verzeichnisstruktur. Jetzt kann ich nicht kompilieren.

Frage: hat der Compiler evtl. einen "core"-Ordner, sodass ich die der 
installierten Compilerversion zugehörigen Dateien nutzen sollte? In der 
Verzeichnisstruktur, die ich erhielt, war u.a. auch ein core ordner 
enthalten.

Danke für weitere Hilfe!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

@ Timo P

Sorry ich dachte das

> ARM EABI für AT91SAM7S128

in deinem ersten Beitrag hätte eine Bedeutung. Bei der DevkitPro and 
devkitARM Toolchain (GCC Compiler usw. für ARM EABI für AT91SAM7S128) 
wurde mehrmals die Fehlermeldung beschrieben, die du auch beobachtet 
hast.

Die Meldung selbst kommt wahrscheinlich von M$. Wer das jetzt genau ist, 
ob das das M$ XP OS selbst ist oder die M$ C-Runtimelibrary von VC++ 
6.0, müsste man nachforschen. Ist aber IMHO unwesentlich.

Auslöser ist die Anwendung, die die M$ C-Runtimelibrary von VC++ 6.0 
benutzt. Und das ist eine derjenigen, die von make aufgerüfen wurden. 
Also ein Programm der Toolchain. Welches genau müsste man 
herausbekommen, indem man sich die Einzelaufrufe der Toolchain 
protokollieren lässt. make räumt danach nur die Reste weg (make: *** 
[application/main.o] Error 3).

von Timo P (Gast)


Lesenswert?

mit make kenne ich mich nicht aus. Aber da ich ja google kenne, werde 
ich mir die Grundlagen, wie z.B. Status-Echos aneignen....

;)

Letzte Frage:
ist es also Fakt, dass die Fehlermeldung NICHT vom Compiler/Linker/make 
ist, SONDERN von einer anderen Instanz(z.B. Emuliertes Linuxsystem unter 
Win XP) ausgelöst wird?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Emuliertes Linuxsystem unter Win XP

Mensch du bist ja wie Houdini - stets ein neues Kaninchen parat :)

Auslöser ist eins der Programme das von make aufgerufen wurde. Das 
schrottet irgendwas in Verbindung mit der M$ Runtime-DLL.

Die darauf folgende Meldung ("This application ... information") kommt 
entweder von dieser M$ Runtime-DLL oder dem M$ XP Betriebssystem.

Der Fehler produziert auch einen Fehlercode beim Beenden des auslösenden 
Programms und der wird von make angezeigt ("make: ... Error 3").

von Karl H. (kbuchegg)


Lesenswert?

Protokollier doch mal die Ausgaben, die vor der Fehlermeldung kommen.
Da wird ja nicht nur die Fehlermeldung dort stehen, sondern auch noch 
was davor. Interessant ist der letzte Aufruf vor der Fehlermeldung, das 
letzte Programm das gestartet wurde, ehe es abgeschmiert ist. Diesen 
Aufruf brauchen wir.

von Timo P (Gast)


Lesenswert?

$ make
arm-elf-gcc -c -D ___ -D __AT91SAM7S128_ -Iconfig 
-I../openbeacon-openpicc2/config -I../core/openbeacon -I
../core/openbeacon/nRF24L01 -I../core/os/core/include -I../core/os/usb 
-I../core/os/core/ARM7_AT91SAM7 -Wall
 -Werror -Wextra -Wno-multichar -Wstrict-prototypes -Wno-strict-aliasing 
-D SAM7_GCC -mcpu=arm7tdmi -Tconfig
/atmel-rom.ld -g -O2 -fomit-frame-pointer -Iapplication 
application/main.c -o application/main.o

This application has requested the Runtime to terminate it in an unusual 
way.
Please contact the application's support team for more information.
make: *** [application/main.o] Error 3


Achtung! hier steht application, dies ist allerdings der Ordner, in dem 
die Scourcen drin sind. z.B die main.c

von Stefan B. (stefan) Benutzerseite


Lesenswert?

arm-elf-gcc ist die gesuchte Applikation oder eines der Programme die
der Compilerdriver arm-elf-gcc wiederum aufruft (Präprozessor, Compiler,
Assembler, Linker). Sieht man in dem Log oben nicht.

Wer genau ist aber auch wenig spannend, weil das Problem für alle
Programme grundsätzlich gleich angepackt werden muss, z.B. mit dem ober
verlinkten Hotfix von M$ als erstem Versuch. Oder einer gefixten
Toolchain als nächstem Versuch.

von Karl H. (kbuchegg)


Lesenswert?

Stefan B. schrieb:

> Wer genau ist aber auch wenig spannend, weil das Problem für alle
> Programme grundsätzlich gleich angepackt werden muss, z.B. mit dem ober
> verlinkten Hotfix von M$ als erstem Versuch. Oder einer gefixten
> Toolchain als nächstem Versuch.

Würde ich auch sagen.
Erst mal die bekannten Fixes anwenden.

Hat man dann immer noch ein Problem, kann man die Sache trickreich 
angehen :-)

Der Absturz passiert beim compilieren von main.c

Da kann man jetzt anfangen alle Funktionen auszukommentieren, so dass 
sie der Compiler nicht mehr sieht
Dann kommentiert man die erste Funktion wieder ein, so dass sie der 
Compiler wieder mitnimmt.
Compilieren
Da werden sicherlich ein paar Fehlermeldungen entstehen, aber die 
ignoriert man. Wichtig ist nur: Absturz oder nicht Absturz.
Hat man keinen Absturz, dann steckt das Problem nicht in der zuletzt 
einkommentierten Funktion. -> Die nächste Funktion wieder von ihrem 
Kommentar befreien und weiter geht die Jagd: compilieren und nachsehen 
ob der Absturz kommt.

Und so tastet man sich ran, bis man die Funktion gefunden hat, die das 
Problem verursacht. Innerhalb der Funktion kann man dann die gleiche 
Auskommentier/Einkommentier-Strategie anwenden um bis auf die Anweisung 
vorzustossen, die das Problem verursacht.

"Und dann schaun wir mal"

Sicherlich gibt es auch eine Möglichkeit, das alles abzukürzen, indem 
man den gcc anweist, die internen Datenstrukturen mitzudumpen, bzw. 
Zwischenfiles anzulegen, aber davon verstehe ich nichts.

von Timo P (Gast)


Lesenswert?

Nutzt jmd diesen Kompiler?

gcc_ARM_EABI_Toolchain?

von Gateway (Gast)


Lesenswert?

Zitat aus einer anderen Website:
In my case this problem was caused by the fact I didn't have a TEMP 
environment variable defined in cygwin, try:

export TEMP=/tmp

If TEMP is already defined make sure the directory is not read only.

und genau das war es bei mir ebenfalls.

http://stackoverflow.com/questions/2151257/cygwin-compiling-error-this-application-has-requested-the-runtime-to-terminate

von Sams X. (sams)


Lesenswert?

in cygwin
1
export TEMP=/tmp

yupp, kann ich bestättigen
Danke Danke
Bin mal wieder in Windows unterwegs ;)

ps: in meinem Fall gehts um avr-gcc compiler, der .. aber sehen sie 
selbst
1
$ avr-gcc -c main.c
2
3
This application has requested the Runtime to terminate it in an unusual way.
4
Please contact the application's support team for more information.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.