external:sigsegv beim debuggen

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.

Re: external:sigsegv beim debuggen

Beitragvon Entertainmentberg » 27. Jan 2013, 23:33 Re: external:sigsegv beim debuggen

Vermutung: Ist es möglich, dass dieser Fehler auftritt, weil u.U. (was ich nicht annehme in meinem Fall) nicht alle Variablen Werte zugewiesen bekommen haben???
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon martin_frb » 27. Jan 2013, 23:43 Re: external:sigsegv beim debuggen

Entertainmentberg hat geschrieben:Hier mal die Proceduren/Functionen (nur die Köpfe), bei denen es das Problem gibt:

FUNCTION f_statistik(dat:t_ew_arr;ew_vorjahr:INTEGER):t_daten;
PROCEDURE p_ew_weniger(dat:t_ew_arr);
PROCEDURE p_ew_mehr(dat:t_ew_arr);

WOBEI
t_ew_arr=ARRAY [1..c_max_ew] of t_einwohner;



Ist das noch SigSegV, oder "GDB has crashed", oder dauert sehr lange?

wie gross ist c_max_ew?

ggf viewtopic.php?f=5&t=6578#p58888 ?

ansonsten log file
martin_frb
 
Beiträge: 456
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Entertainmentberg » 28. Jan 2013, 00:07 Re: external:sigsegv beim debuggen

Hab den Datentyp mal etwas vereinfacht... Und jippie! Es kommt nun sogar ein anderer Fehler: Fast der gleiche Text, nur kommt nun "SIGFPE ausgelöst"... statt "SIGSEGV ausgelöst"...

Vielleicht kann damit wer was anfangen.

P.S. sorry, dass ich die vorige Nachricht 2x reingestellt habe - ich war noch auf der ersten Seite und dachte, mein Beitrag wurde nicht aufgenommen - dabei war der auf der 2. Seite...

Gute Nacht.
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Entertainmentberg » 28. Jan 2013, 00:18 Re: external:sigsegv beim debuggen

Oh - hallo MArtin, sei gegrüßt, danke für die schnelle Reaktion.
Es handelte sich im Normalfall (ungekürzt) um SIGSEGV.

const
c_max_ew = 100000;

Ich probiere es mal mit ner kleineren Zahl aus.
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Entertainmentberg » 28. Jan 2013, 00:25 Re: external:sigsegv beim debuggen

Oha! Du hast Recht!!! Wenn ich das mit 10000 ausprobiere statt 100000, dann tritt der Fehler nicht mehr auf!
Ach herrje... Dann können ja nur wenige Leute in den Städten wohnen... das misfällt mir nun aber sehr... Nun erkenn ich auch den Zusammenhang - ich hab neue Variablen hinzugefügt gehabt - das wurde dann in der Summe wohl zu viel. { t_bereiche kam hinzu und der ist sehr umfangreich}

Hat jmd. ne Idee, wie ich mit größeren Zahlen arbeiten kann??? Also ohne, dass der Fehler auftritt... Sonst muss ich t_einwohner wohl wieder drastisch verkleinern. Das wäre echt schade...

Vielen Dank für die Anregung!
LG
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon martin_frb » 28. Jan 2013, 00:30 Re: external:sigsegv beim debuggen

Entertainmentberg hat geschrieben:Oh - hallo MArtin, sei gegrüßt, danke für die schnelle Reaktion.
const
c_max_ew = 100000;



Ich glaub das hat nix mit gdb zu tun...

STATISCHES array 100x eintraege sizeof=Z 10, 20 bytes?

also 1MB. So viel Speicher hast du zwar locker. Aber nicht unbedingt auf dem STACK.

statisches Array geht auf den stack.

Das heist auch das es beim Aufruf komplett kopiert wird...
martin_frb
 
Beiträge: 456
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Entertainmentberg » 28. Jan 2013, 00:48 Re: external:sigsegv beim debuggen

"STATISCHES array 100x eintraege sizeof=Z 10, 20 bytes?
also 1MB. So viel Speicher hast du zwar locker. Aber nicht unbedingt auf dem STACK.
statisches Array geht auf den stack.
Das heist auch das es beim Aufruf komplett kopiert wird..."

Oh - ich muss erstmal die Begriffe recherchieren. Mit "STATISCHES array" bin ich grad etwas überfordert. Stack hab ich schonmal gehört... "sizeof=Z 10, 20 bytes" kann ich grad auch nichts zu sagen... ich schlag das mal nach. oder google... oder so...

Vielen Dank, bis später
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon martin_frb » 28. Jan 2013, 01:16 Re: external:sigsegv beim debuggen

Stack = lokale variablen, und ruecksprungaddressen (wenn du eine procedure/funktion aufrufst, wo nach ende der funktion weitergemacht wird.

keine Ahnung was die gefault Groesse ist. Gibt nen kompiler switch...

* static array "array [1..n] of"
* dynamic array "array of " und setlength()

dynamisch arrays sind eigentlich pointer, und brauchen daher als lokale variable nur 4/8 bytes

SizeOf wieviel speicher eine structur belegt.
martin_frb
 
Beiträge: 456
Registriert: 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other | 
CPU-Target: mostly 32 bit
Nach oben

Beitragvon Entertainmentberg » 2. Feb 2013, 02:22 Re: external:sigsegv beim debuggen

Ich danke erstmal viele Male - da hab ich ja nun zumindest Ansätze, die ich verfolgen kann :-)
Momentan kann ich aus zeitlihen Gründen erstmal nicht direkt weitermachen. Aber ich komm wieder drauf zurück.
Danke
Entertainmentberg
 
Beiträge: 46
Registriert: 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon timedrift » 8. Mai 2013, 17:33 Re: external:sigsegv beim debuggen

Hallo
bin relativ neu mit lazarus am Programmieren.
Hatte aber auch diese merkwürdige Fehlermeldung in folgenden Programmlisting:

Code: Alles auswählen
var
  Form1:       TForm1;
   gewinnzahl :       array of Integer; 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
    gewinnzahl[0] := 1;
    gewinnzahl[1] := 12;
    gewinnzahl[2] := 23;
     gewinnzahl[3] := 34;
      gewinnzahl[4] := 45;
       gewinnzahl[5] := 56;   


Dann habe ich die Länge des array definiert mit

Code: Alles auswählen
 SetLength(gewinnzahl, 6);


somit also

Code: Alles auswählen
procedure TForm1.Button2Click(Sender: TObject);
begin
   SetLength(gewinnzahl, 6);
    gewinnzahl[0] := 1;
    gewinnzahl[1] := 12;
    gewinnzahl[2] := 23;
     gewinnzahl[3] := 34;
      gewinnzahl[4] := 45;
       gewinnzahl[5] := 56;   


und die nervige Fehlermeldung war schlagartig weg.
Vielleicht hilft es ja.
viele Grüße
Timedrift
Zuletzt geändert von Lori am 9. Mai 2013, 09:35, insgesamt 1-mal geändert.
Grund: Highlighter
timedrift
 
Beiträge: 1
Registriert: 8. Mai 2013, 17:20

Beitragvon kjer » 15. Apr 2015, 09:57 Nochmal: external:sigsegv beim debuggen

habe jetzt auch so einen external:sigsegv;
womöglich hab ich nur Brett vor Kopf, vielleicht hat jemand auf die Schnelle eine Idee?
(ganz neue Laz/FPC-Installation, alles von vorher gelöscht)

Situation zum Reproduzieren:

Neues Projekt, mit Laz.1.2.6, FPC 2.6.4 32 bit Win 7 prof 64 bit als Administrator
Button auf form, Komp. BufDataset auf Form


zusätzlicher Suchpfad in Debugger ( für BufDataset1: TBufDataset ):
C:\lazarus\fpc\2.6.4\source\packages\fcl-db\src\base
Fehler tritt mit und ohne diesen Pfad auf;



Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
  mem : TMemoryStream;
begin
  mem := TMemoryStream.Create;
  mem.SetSize(111111);   
 
  // auf folg. Zeile Breakpoint oder nicht ergibt: Exception-Klasse: External: SIGSEGV
  BufDataset1.SaveToStream( mem, dfBinary );
 // F7 läuft auch nicht in die Unit von BufDataSet rein, egal ob auf vorstehender Zeile
 // Breakpoint oder nicht oder in SaveToStream auf dem ersten Befehl Breakpoint oder nicht
 // BufDataSet leer
end;



//Für Lösungsidee wär ich echt dankbar, Dank im Voraus
//
kjer
 
Beiträge: 1
Registriert: 15. Apr 2015, 09:34

Beitragvon theo » 15. Apr 2015, 12:07 Re: external:sigsegv beim debuggen

Na gut, wenn sonst keiner was sagt...

Erstens: Dieser Thread ist kein guter Ort für diese Frage. "Sigsegv" bedeutet nicht viel mehr als "Autsch" und sagt über die Gründe nicht viel aus.
Zweitens: Man kann nicht in die FCL reinsteppen, wenn diese nicht mit Debug info gebaut ist.
Drittens: Ich glaube dein Fehler ist möglicherweise die Folge eines anderen Problems. Versuch mal das BufDataSet Active zu setzen, dann siehst du evtl. genaueres.
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon Michl » 15. Apr 2015, 12:57 Re: external:sigsegv beim debuggen

Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2330
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •
Vorherige

Zurück zu Lazarus - Bugs



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried