external:sigsegv beim debuggen
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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???
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
Re: external:sigsegv beim debuggen
Ist das noch SigSegV, oder "GDB has crashed", oder dauert sehr lange?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;
wie gross ist c_max_ew?
ggf http://www.lazarusforum.de/viewtopic.ph ... 578#p58888 ?
ansonsten log file
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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.
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.
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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.
Es handelte sich im Normalfall (ungekürzt) um SIGSEGV.
const
c_max_ew = 100000;
Ich probiere es mal mit ner kleineren Zahl aus.
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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
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
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
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...
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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
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
-
- Beiträge: 586
- Registriert: Mi 25. Mär 2009, 21:12
- OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
- CPU-Target: mostly 32 bit
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.
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.
-
- Beiträge: 46
- Registriert: So 27. Jan 2013, 22:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
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

Momentan kann ich aus zeitlihen Gründen erstmal nicht direkt weitermachen. Aber ich komm wieder drauf zurück.
Danke
Re: external:sigsegv beim debuggen
Hallo
bin relativ neu mit lazarus am Programmieren.
Hatte aber auch diese merkwürdige Fehlermeldung in folgenden Programmlisting:
Dann habe ich die Länge des array definiert mit
somit also
und die nervige Fehlermeldung war schlagartig weg.
Vielleicht hilft es ja.
viele Grüße
Timedrift
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;
Code: Alles auswählen
SetLength(gewinnzahl, 6);
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;
Vielleicht hilft es ja.
viele Grüße
Timedrift
Zuletzt geändert von Lori am Do 9. Mai 2013, 10:35, insgesamt 1-mal geändert.
Grund: Highlighter
Grund: Highlighter
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;
//Für Lösungsidee wär ich echt dankbar, Dank im Voraus
//
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
//
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.
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.
Re: external:sigsegv beim debuggen
Vielleicht hilft es dir?!: http://www.pp4s.co.uk/main/tu-db-bufdataset.html
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;