Stack overflow when searching methods for *string*

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Stack overflow when searching methods for *string*

Carl Gundel-2
If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.
 
Here is where the recursion gets stuck:
 
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
 
Is there a fix for this?
 
Thanks,
 
-Carl Gundel

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

jtuchel
Hi Carl,

what's the content of the String instance? Can you dig down the Stack to the beginning of the rec.ursion?

I can't remember seeing this error...

Joachim


Am Freitag, 26. April 2013 14:30:34 UTC+2 schrieb Carl Gundel:
If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.
 
Here is where the recursion gets stuck:
 
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
String(EsString)>>#match:
String(EsString)>>#starMatch:starIndex:octothorpeIndex:
 
Is there a fix for this?
 
Thanks,
 
-Carl Gundel

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

Carl Gundel-2

On Friday, April 26, 2013 9:19:31 AM UTC-4, [hidden email] wrote:
Hi Carl,

what's the content of the String instance? Can you dig down the Stack to the beginning of the rec.ursion?

I can't remember seeing this error...

Joachim

 
Good point.  Here is an example that causes the stack overflow.
 
-Carl
 
'*registry*' match: 'M; offset: 10));
   orientation: 1.
 notebookPage3
   tabLabel: (abtSeparatedConstants at: 2)          " ''Tab 1'' " .
 pushButton3
   object: (abtSeparatedConstants at: 3)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 261);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 128);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 94);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 52)).
 notebookPage1
   tabLabel: (abtSeparatedConstants at: 4)          " ''Tab 2'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtEdgeConstant new offset: 28);
   topEdge: (AbtEdgeConstant new offset: 18)).
 pushButton1
   object: (abtSeparatedConstants at: 5)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 122);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 86);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE)).
 notebookPage2
   tabLabel: (abtSeparatedConstants at: 6)          " ''Tab 3'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtEdgeConstant new offset: 398);
   topEdge: (AbtEdgeConstant new offset: 365)).
 pushButton2
   object: (abtSeparatedConstants at: 7)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 295);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 24);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE)).
 label1
   object: (abtSeparatedConstants at: 8)          " ''View the connections on ""Tab 2"" with ""Optimize'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 10);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 9);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 4);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 20)).
 label11
   object: (abtSeparatedConstants at: 9)          " ''Connection Display"" turned on and off.'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 10);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 9);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 27);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 20)).
 conn0 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn0
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn2 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn2
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn4 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn4
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn6 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn6
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn8 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn8
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn10 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn10
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn12 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn12
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn14 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn14
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn16 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn16
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn18 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn18
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn20 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn20
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn22 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn22
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn24 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn24
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn26 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn26
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn28 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn28
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn30 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn30
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn32 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn32
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn34 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn34
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn36 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn36
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn38 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn38
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn40 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn40
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn42 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn42
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn44 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn44
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn46 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn46
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn48 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn48
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn50 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn50
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn52 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn52
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn54 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn54
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn56 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn56
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn58 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn58
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn60 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn60
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn62 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn62
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn64 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn64
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn66 := AbtEventToActionConnection new
  connectSource: pushButton2
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #removeAll:
  featureSelector: #IS_removeAll_.
 conn66
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn68 := AbtEventToActionConnection new
  connectSource: pushButton3
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #removeAll:
  featureSelector: #IS_removeAll_.
 conn68
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 pushButton3
  abtWhenPrimitive: #clicked
  perform:
   (conn70 := AbtEventToActionConnection new
    source: pushButton3;
    eventName: #clicked;
    actionProvider: pushButton3
    featureName: #enabled
    feature: AbtPushButtonView IS_enabled).
 pushButton3
  abtWhenPrimitive: #clicked
  perform:
   (conn71 := AbtEventToActionConnection new
    source: pushButton3;
    eventName: #clicked;
    actionProvider: pushButton3
    featureName: #enabled
    feature: AbtPushButtonView IS_enabled).
 self initializeAttributeConnections.
 self finalInitialize.
'
 

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

jtuchel
Hi Carl,

so you are searching for the String '*registry*', right?

I am not sure if that feature is considered to work with wildcards. I must admit I never tried...
Can you try without the stars?

I don't have an Image at hand right now, but I guess you will see it work as expected. Search Methods including String always searches for occurrences of a String as if you added * at both ends

Joachim


Am Freitag, 26. April 2013 15:26:21 UTC+2 schrieb Carl Gundel:

On Friday, April 26, 2013 9:19:31 AM UTC-4, [hidden email] wrote:
Hi Carl,

what's the content of the String instance? Can you dig down the Stack to the beginning of the rec.ursion?

I can't remember seeing this error...

Joachim

 
Good point.  Here is an example that causes the stack overflow.
 
-Carl
 
'*registry*' match: 'M; offset: 10));
   orientation: 1.
 notebookPage3
   tabLabel: (abtSeparatedConstants at: 2)          " ''Tab 1'' " .
 pushButton3
   object: (abtSeparatedConstants at: 3)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 261);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 128);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 94);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 52)).
 notebookPage1
   tabLabel: (abtSeparatedConstants at: 4)          " ''Tab 2'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtEdgeConstant new offset: 28);
   topEdge: (AbtEdgeConstant new offset: 18)).
 pushButton1
   object: (abtSeparatedConstants at: 5)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 122);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 86);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE)).
 notebookPage2
   tabLabel: (abtSeparatedConstants at: 6)          " ''Tab 3'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtEdgeConstant new offset: 398);
   topEdge: (AbtEdgeConstant new offset: 365)).
 pushButton2
   object: (abtSeparatedConstants at: 7)          " ''Push Button'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 295);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 24);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHNONE)).
 label1
   object: (abtSeparatedConstants at: 8)          " ''View the connections on ""Tab 2"" with ""Optimize'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 10);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 9);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 4);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 20)).
 label11
   object: (abtSeparatedConstants at: 9)          " ''Connection Display"" turned on and off.'' " ;
   framingSpec: (AbtViewAttachmentConstraint new
   leftEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 10);
   rightEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 9);
   topEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHFORM; offset: 27);
   bottomEdge: (AbtRunEdgeAttachmentConstraint new attachment: XmATTACHSELFOPPOSITE; offset: 20)).
 conn0 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn0
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn2 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn2
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn4 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn4
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn6 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn6
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn8 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn8
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn10 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn10
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn12 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn12
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn14 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn14
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn16 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn16
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn18 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn18
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn20 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn20
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn22 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn22
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn24 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn24
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn26 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn26
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn28 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn28
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn30 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn30
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn32 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn32
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn34 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn34
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn36 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn36
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn38 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn38
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn40 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn40
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn42 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn42
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn44 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn44
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn46 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn46
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn48 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn48
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn50 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn50
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn52 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn52
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn54 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn54
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn56 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn56
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn58 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn58
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn60 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn60
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn62 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn62
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn64 := AbtEventToActionConnection new
  connectSource: pushButton1
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #addAll:
  featureSelector: #IS_addAll_.
 conn64
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn66 := AbtEventToActionConnection new
  connectSource: pushButton2
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #removeAll:
  featureSelector: #IS_removeAll_.
 conn66
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 conn68 := AbtEventToActionConnection new
  connectSource: pushButton3
  featureName: #clicked
  feature: AbtPushButtonView IS_clicked;
  actionProvider: object1
  variableFeatureName: #removeAll:
  featureSelector: #IS_removeAll_.
 conn68
  forParameter: #aCollection
  perform:
   (DirectedMessage new
    receiver: object2;
    selector: #abtGetValueOfAttribute:;
    arguments: (Array with: AbtVariable IS_self)).
 pushButton3
  abtWhenPrimitive: #clicked
  perform:
   (conn70 := AbtEventToActionConnection new
    source: pushButton3;
    eventName: #clicked;
    actionProvider: pushButton3
    featureName: #enabled
    feature: AbtPushButtonView IS_enabled).
 pushButton3
  abtWhenPrimitive: #clicked
  perform:
   (conn71 := AbtEventToActionConnection new
    source: pushButton3;
    eventName: #clicked;
    actionProvider: pushButton3
    featureName: #enabled
    feature: AbtPushButtonView IS_enabled).
 self initializeAttributeConnections.
 self finalInitialize.
'
 

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

Thomas Koschate-2
In reply to this post by Carl Gundel-2
On Friday, April 26, 2013 8:30:34 AM UTC-4, Carl Gundel wrote:

If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.

 It's actually pointless to search for anything string with a leading or trailing wild card - just searching for the string will have the same effect.  You might want to search for a string with an embedded wild card; e.g. "registry*entry".  This may well be desirable, but it does generate a stack overflow.

As Joachim suggests, the method was probably never intended to work with wild cards...

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

jtuchel
Tom,

but the interesting thing here is that this is just a send of#match: and thus has nothing to do with VA Assist... when I get back to a vast installation, i'll give it a try. I remeber using match: or match:ignoreCase: or such with wildcards (also like this: *string*)...

neverthheless, I think Carl should try without wildcards and he'll get what he wants...

Joachim

Am Freitag, 26. April 2013 18:42:53 UTC+2 schrieb Thomas Koschate:
On Friday, April 26, 2013 8:30:34 AM UTC-4, Carl Gundel wrote:

If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.

 It's actually pointless to search for anything string with a leading or trailing wild card - just searching for the string will have the same effect.  You might want to search for a string with an embedded wild card; e.g. "registry*entry".  This may well be desirable, but it does generate a stack overflow.

As Joachim suggests, the method was probably never intended to work with wild cards...

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

jtuchel
Hmm,

this is interesting. VA Assist does in fact add stars to the end and beginning of a search term if there aren't any before it tries to match a string. (see Object>>stsAllMethodsIncludingString:progressDialog:), so the stack Carl sent here does not necessarily mean he added stars to the search field. And it seems it shouldn't matter.


I get the same stack overflow in 8.5.2 on Win 7 64 if I enter '*test*', after the progress dialog mentioned somewhat above 125 occurences... But searching for 'test' does work....

The method it breaks upon is also an Implementation of abtBuildInternals in my case (AbtApplicationPrefixesView>>#abtBuildInternals, to be exact, but it does probably not matter) and the method that fails is CompiledMethod>>#stsHasWildString:.

Diving down into the cascade of starMatch:... and match:, you can see the match: method does indeed split the method and cut off the first x characters (maybe the "'test' size" characters) and try to matche the remaining string.

So this sure is a case for Instantiations Support.

Joachim




Am Freitag, 26. April 2013 19:16:47 UTC+2 schrieb [hidden email]:
Tom,

but the interesting thing here is that this is just a send of#match: and thus has nothing to do with VA Assist... when I get back to a vast installation, i'll give it a try. I remeber using match: or match:ignoreCase: or such with wildcards (also like this: *string*)...

neverthheless, I think Carl should try without wildcards and he'll get what he wants...

Joachim

Am Freitag, 26. April 2013 18:42:53 UTC+2 schrieb Thomas Koschate:
On Friday, April 26, 2013 8:30:34 AM UTC-4, Carl Gundel wrote:

If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.

 It's actually pointless to search for anything string with a leading or trailing wild card - just searching for the string will have the same effect.  You might want to search for a string with an embedded wild card; e.g. "registry*entry".  This may well be desirable, but it does generate a stack overflow.

As Joachim suggests, the method was probably never intended to work with wild cards...

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

Carl Gundel-2
That's right.  There's no reason why a debugger should ever open when searching for methods for any particular string the user might type in.
 
-Carl
 
On Monday, April 29, 2013 3:00:53 AM UTC-4, [hidden email] wrote:
Hmm,

this is interesting. VA Assist does in fact add stars to the end and beginning of a search term if there aren't any before it tries to match a string. (see Object>>stsAllMethodsIncludingString:progressDialog:), so the stack Carl sent here does not necessarily mean he added stars to the search field. And it seems it shouldn't matter.


I get the same stack overflow in 8.5.2 on Win 7 64 if I enter '*test*', after the progress dialog mentioned somewhat above 125 occurences... But searching for 'test' does work....

The method it breaks upon is also an Implementation of abtBuildInternals in my case (AbtApplicationPrefixesView>>#abtBuildInternals, to be exact, but it does probably not matter) and the method that fails is CompiledMethod>>#stsHasWildString:.

Diving down into the cascade of starMatch:... and match:, you can see the match: method does indeed split the method and cut off the first x characters (maybe the "'test' size" characters) and try to matche the remaining string.

So this sure is a case for Instantiations Support.

Joachim




Am Freitag, 26. April 2013 19:16:47 UTC+2 schrieb [hidden email]:
Tom,

but the interesting thing here is that this is just a send of#match: and thus has nothing to do with VA Assist... when I get back to a vast installation, i'll give it a try. I remeber using match: or match:ignoreCase: or such with wildcards (also like this: *string*)...

neverthheless, I think Carl should try without wildcards and he'll get what he wants...

Joachim

Am Freitag, 26. April 2013 18:42:53 UTC+2 schrieb Thomas Koschate:
On Friday, April 26, 2013 8:30:34 AM UTC-4, Carl Gundel wrote:

If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.

 It's actually pointless to search for anything string with a leading or trailing wild card - just searching for the string will have the same effect.  You might want to search for a string with an embedded wild card; e.g. "registry*entry".  This may well be desirable, but it does generate a stack overflow.

As Joachim suggests, the method was probably never intended to work with wild cards...

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Stack overflow when searching methods for *string*

Solveig
In reply to this post by jtuchel
Hello Joachim,

this is actually a known issue. We're working on in as case 49066. It is usually triggered by use of wild cards.

Solveig
On Monday, April 29, 2013 3:00:53 AM UTC-4, [hidden email] wrote:
Hmm,

this is interesting. VA Assist does in fact add stars to the end and beginning of a search term if there aren't any before it tries to match a string. (see Object>>stsAllMethodsIncludingString:progressDialog:), so the stack Carl sent here does not necessarily mean he added stars to the search field. And it seems it shouldn't matter.


I get the same stack overflow in 8.5.2 on Win 7 64 if I enter '*test*', after the progress dialog mentioned somewhat above 125 occurences... But searching for 'test' does work....

The method it breaks upon is also an Implementation of abtBuildInternals in my case (AbtApplicationPrefixesView>>#abtBuildInternals, to be exact, but it does probably not matter) and the method that fails is CompiledMethod>>#stsHasWildString:.

Diving down into the cascade of starMatch:... and match:, you can see the match: method does indeed split the method and cut off the first x characters (maybe the "'test' size" characters) and try to matche the remaining string.

So this sure is a case for Instantiations Support.

Joachim




Am Freitag, 26. April 2013 19:16:47 UTC+2 schrieb [hidden email]:
Tom,

but the interesting thing here is that this is just a send of#match: and thus has nothing to do with VA Assist... when I get back to a vast installation, i'll give it a try. I remeber using match: or match:ignoreCase: or such with wildcards (also like this: *string*)...

neverthheless, I think Carl should try without wildcards and he'll get what he wants...

Joachim

Am Freitag, 26. April 2013 18:42:53 UTC+2 schrieb Thomas Koschate:
On Friday, April 26, 2013 8:30:34 AM UTC-4, Carl Gundel wrote:

If I search using a wildcard using the VA Assist Pro method + Browse Methods + Including String... menu I get a stack overflow, so far no matter what I search for.  This happens with a freshly installed VAST 8.5.2 image.

 It's actually pointless to search for anything string with a leading or trailing wild card - just searching for the string will have the same effect.  You might want to search for a string with an embedded wild card; e.g. "registry*entry".  This may well be desirable, but it does generate a stack overflow.

As Joachim suggests, the method was probably never intended to work with wild cards...

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.