Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ocamldebug + Time = max_int #3397

Closed
vicuna opened this issue Jun 17, 2002 · 2 comments
Closed

ocamldebug + Time = max_int #3397

vicuna opened this issue Jun 17, 2002 · 2 comments
Labels

Comments

@vicuna
Copy link

vicuna commented Jun 17, 2002

Original bug ID: 1202
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)

Bug description

Salut,

J'ai un programme qui fait Stack overflow. Qu'à cela ne tienne, je le
passe sous le debugger. Et là, surprise, je constate qu'il fait Stack
overflow dans le debugger (je reviens au shell), au moment précis où
le "Time" arrive à max_int (plus exactement un coup plus tard). Voici
un extrait de mes traces:

Objective Caml Debugger version 3.04+14 (2002-06-10)

(ocd) goto 1073741800
Loading program... done.
[... blablabla du programme...]

Time : 1073741800 - pc : 603144 - module Poly_bta_env
443 <|b|>S.atomcell_relation (ac, ac1) = EQUAL
(ocd) goto 1073741818
Time : 1073741818 - pc : 188428 - module Store
738 <|b|>pair_relation T.id_relation ((a1, b1), (a2, b2))
(ocd) step
Time : 1073741819 - pc : 187540 - module Store
718 <|b|>let first = relation (a1, a2) in
(ocd)
Time : 1073741820 - pc : 142604 - module Basic_types
434 <|b|>match id1, id2 with
(ocd)
Time : 1073741821 - pc : 142668 - module Basic_types
435 ROOT i1, ROOT i2 -> <|b|>cmpident i1 i2
(ocd)
Time : 1073741822 - pc : 141724 - module Basic_types
408 <|b|>match i1, i2 with
(ocd)
Time : 1073741823 - pc : 141936 - module Basic_types
412 | G s1, G s2 -> <|b|>String.compare (s1, s2)
(ocd)
Time : -1073741824 - pc : 81652 - module Libsml
250 <|b|>if s1 < s2 then LESS
(ocd)
Uncaught exception: Stack overflow
$

Je ne suis pas sûr que le Stack overflow arrive exactement au même
endroit quand je le lance sans le debugger: du point de vue des
traces du programme, ça correspond. Mais bon, c'est pas facile à voir
d'autant que ça mouline 18 minutes avant de se planter.

Si c'est au même endroit (sans et avec debugger), ça voudrait peut-être
dire que le problème viendrait du runtime et non pas du debugger?

Testé sur la toute dernière version (CVS) du compilateur.

Je peux tester des trucs en plus, regarder des variables, compiler
le compilo en mode debug, ce que vous voulez si vous me dites. Merci.

--
Daniel de RAUGLAUDRE
daniel.de_rauglaudre@inria.fr
http://cristal.inria.fr/~ddr/

@vicuna
Copy link
Author

vicuna commented Jun 17, 2002

Comment author: administrator

Il est fort possible qu'ocamldebug fasse n'importe quoi quand sa
notion de "Time" déborde et devient négative :-(

Pour ton programme, tu peux essayer de le lancer en bytecode, compilé
avec "-g", et lancé avec ocamlrun -b ou avec la variable OCAMLRUNPARAM
mise à "b". Si tout se passe bien, ça devrait afficher un historique
de la pile d'appel au moment du Stack_overflow, et te donner une idée
d'où ça plante.

  • Xavier

@vicuna
Copy link
Author

vicuna commented Oct 29, 2002

Comment author: administrator

J'ai un programme qui fait Stack overflow. Qu'à cela ne tienne, je le
passe sous le debugger. Et là, surprise, je constate qu'il fait Stack
overflow dans le debugger (je reviens au shell), au moment précis où
le "Time" arrive à max_int (plus exactement un coup plus tard). Voici
un extrait de mes traces:

J'ai regle le probleme du debogueur en lui expliquant que "time" est
un int64. Le bug existe toujours, mais maintenant il faut 147000 ans
pour le declencher...

Quant au fait que ton programme faisait Stack overflow au meme endroit,
j'ai tendance a penser que c'etait une coincidence.

Fixed in the current working version (3.06+12).

-- Damien

@vicuna vicuna closed this as completed Oct 29, 2002
@vicuna vicuna added the bug label Mar 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant