Hi Sabine,

have you tried with a 64bits version of Pharo (with a recent VM, i.e.
newer than the 6.1 vm)? I use the 5.0-201801170946, for example.

If, by chance, you manage to create a script provoking the segfault,
that may really help.

Thierry

2018-03-06 11:49 GMT+01:00 Sabine Manaa <[email protected]>:
> Hi,
>
> I can report the following:
>
> The problem with the Buffer overflow remains also with OSProcess.
> Also with the normal vm (https://get.pharo.org ).
>
> Summary: I have buffer overflow crashes with my application on Linux.
> The same code runs without problems on MacOS and on Windows.
> I have the same test data/database and do exactly the same.
>
> The problem occurs only after calling several times OSProcess/OSSubprocess.
> This is the reason why I first had a suspicion that OSSubprocess is
> responsible for the crashes.
>
> Can anyone tell me how to proceed to find the reason for the buffer
> overflow?
> There is no PharoDebug.log
>
> Help is very appreciated!
>
> This is the message when terminating:
>
> root@Pharo_ubuntu_16:/spf/build# ./pharo Pharo-Productive-SPF.image
> --no-quit
>
> SmalltalkImageInstanceID class>>startUp*** buffer overflow detected ***:
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
>
> ======= Backtrace: =========
>
> /lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf75b9377]
>
> /lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xf7649708]
>
> /lib/i386-linux-gnu/libc.so.6(+0xf58f8)[0xf76478f8]
>
> /lib/i386-linux-gnu/libc.so.6(+0xf75fa)[0xf76495fa]
>
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo(aioEnable+0x31)[0x80c9811]
>
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo[0x81215ee]
>
> [0x90010e0]
>
> [0x90ad2d0]
>
> [0x90db8b4]
>
> [0x90ad24a]
>
> [0x900be6b]
>
> [0x900b04d]
>
> [0x9007a3e]
>
> [0x9004247]
>
> [0x9004572]
>
> [0x9001020]
>
> [0xa98c524]
>
> [0xb1755db]
>
> [0x9003efc]
>
> [0x9001020]
>
> [0xdcb558c]
>
> [0xb0d4d95]
>
> [0x9000ff0]
>
> ======= Memory map: ========
>
> 08048000-08164000 r-xp 00000000 00:1b 1183256
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo
>
> 08164000-08165000 r--p 0011b000 00:1b 1183256
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo
>
> 08165000-08170000 rw-p 0011c000 00:1b 1183256
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo
>
> 08170000-081a7000 rw-p 00000000 00:00 0
>
> 08fdd000-08ffe000 rw-p 00000000 00:00 0
> [heap]
>
> 09000000-09100000 rwxp 00000000 00:00 0
>
> 09100000-11200000 rw-p 00000000 00:00 0
>
> f552e000-f554a000 r-xp 00000000 00:1b 8244
> /lib/i386-linux-gnu/libgcc_s.so.1
>
> f554a000-f554b000 rw-p 0001b000 00:1b 8244
> /lib/i386-linux-gnu/libgcc_s.so.1
>
> f554b000-f684c000 rw-p 00000000 00:00 0
>
> f684c000-f684f000 r-xp 00000000 00:1b 1183242
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/JPEGReaderPlugin.so
>
> f684f000-f6850000 r--p 00002000 00:1b 1183242
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/JPEGReaderPlugin.so
>
> f6850000-f6851000 rw-p 00003000 00:1b 1183242
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/JPEGReaderPlugin.so
>
> f6851000-f68b2000 r-xp 00000000 00:1b 1183230
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libssl.so.1.0.0
>
> f68b2000-f68b3000 ---p 00061000 00:1b 1183230
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libssl.so.1.0.0
>
> f68b3000-f68b5000 r--p 00061000 00:1b 1183230
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libssl.so.1.0.0
>
> f68b5000-f68b9000 rw-p 00063000 00:1b 1183230
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libssl.so.1.0.0
>
> f68b9000-f6a7b000 r-xp 00000000 00:1b 1183239
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libcrypto.so.1.0.0
>
> f6a7b000-f6a7c000 ---p 001c2000 00:1b 1183239
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libcrypto.so.1.0.0
>
> f6a7c000-f6a8c000 r--p 001c2000 00:1b 1183239
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libcrypto.so.1.0.0
>
> f6a8c000-f6a93000 rw-p 001d2000 00:1b 1183239
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/libcrypto.so.1.0.0
>
> f6a93000-f6a96000 rw-p 00000000 00:00 0
>
> f6a96000-f6a9b000 r-xp 00000000 00:1b 1183249
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/SqueakSSL.so
>
> f6a9b000-f6a9c000 r--p 00004000 00:1b 1183249
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/SqueakSSL.so
>
> f6a9c000-f6a9d000 rw-p 00005000 00:1b 1183249
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/SqueakSSL.so
>
> f6a9d000-f6ab1000 r-xp 00000000 00:1b 7925
> /lib/i386-linux-gnu/libresolv-2.23.so
>
> f6ab1000-f6ab2000 ---p 00014000 00:1b 7925
> /lib/i386-linux-gnu/libresolv-2.23.so
>
> f6ab2000-f6ab3000 r--p 00014000 00:1b 7925
> /lib/i386-linux-gnu/libresolv-2.23.so
>
> f6ab3000-f6ab4000 rw-p 00015000 00:1b 7925
> /lib/i386-linux-gnu/libresolv-2.23.so
>
> f6ab4000-f6ab6000 rw-p 00000000 00:00 0
>
> f6ab6000-f6abb000 r-xp 00000000 00:1b 7931
> /lib/i386-linux-gnu/libnss_dns-2.23.so
>
> f6abb000-f6abc000 r--p 00004000 00:1b 7931
> /lib/i386-linux-gnu/libnss_dns-2.23.so
>
> f6abc000-f6abd000 rw-p 00005000 00:1b 7931
> /lib/i386-linux-gnu/libnss_dns-2.23.so
>
> f6abd000-f6c05000 rw-p 00000000 00:00 0
>
> f6c05000-f6c2e000 r-xp 00000000 00:1b 8373
> /lib/i386-linux-gnu/libpng12.so.0.54.0
>
> f6c2e000-f6c2f000 r--p 00028000 00:1b 8373
> /lib/i386-linux-gnu/libpng12.so.0.54.0
>
> f6c2f000-f6c30000 rw-p 00029000 00:1b 8373
> /lib/i386-linux-gnu/libpng12.so.0.54.0
>
> f6c30000-f6c49000 r-xp 00000000 00:1b 8362
> /lib/i386-linux-gnu/libz.so.1.2.8
>
> f6c49000-f6c4a000 r--p 00018000 00:1b 8362
> /lib/i386-linux-gnu/libz.so.1.2.8
>
> f6c4a000-f6c4b000 rw-p 00019000 00:1b 8362
> /lib/i386-linux-gnu/libz.so.1.2.8
>
> f6c4b000-f6cf6000 r-xp 00000000 00:1b 8395
> /usr/lib/i386-linux-gnu/libfreetype.so.6.12.1
>
> f6cf6000-f6cfa000 r--p 000aa000 00:1b 8395
> /usr/lib/i386-linux-gnu/libfreetype.so.6.12.1
>
> f6cfa000-f6cfb000 rw-p 000ae000 00:1b 8395
> /usr/lib/i386-linux-gnu/libfreetype.so.6.12.1
>
> f6cfb000-f6d02000 r-xp 00000000 00:1b 1183229
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/FT2Plugin.so
>
> f6d02000-f6d03000 r--p 00006000 00:1b 1183229
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/FT2Plugin.so
>
> f6d03000-f6d04000 rw-p 00007000 00:1b 1183229
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/FT2Plugin.so
>
> f6d04000-f6d0f000 r-xp 00000000 00:1b 7934
> /lib/i386-linux-gnu/libnss_files-2.23.so
>
> f6d0f000-f6d10000 r--p 0000a000 00:1b 7934
> /lib/i386-linux-gnu/libnss_files-2.23.so
>
> f6d10000-f6d11000 rw-p 0000b000 00:1b 7934
> /lib/i386-linux-gnu/libnss_files-2.23.so
>
> f6d11000-f6d38000 rw-p 00000000 00:00 0
>
> f6d38000-f6d39000 ---p 00000000 00:00 0
>
> f6d39000-f7539000 rw-p 00000000 00:00 0
> [stack:21188]
>
> f7539000-f753b000 r-xp 00000000 00:1b 7968
> /usr/lib/i386-linux-gnu/gconv/MACINTOSH.so
>
> f753b000-f753c000 r--p 00001000 00:1b 7968
> /usr/lib/i386-linux-gnu/gconv/MACINTOSH.so
>
> f753c000-f753d000 rw-p 00002000 00:1b 7968
> /usr/lib/i386-linux-gnu/gconv/MACINTOSH.so
>
> f753d000-f7544000 r--s 00000000 00:1b 7977
> /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
>
> f7544000-f754a000 r-xp 00000000 00:1b 1183240
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-sound-OSS.so
>
> f754a000-f754b000 r--p 00005000 00:1b 1183240
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-sound-OSS.so
>
> f754b000-f754c000 rw-p 00006000 00:1b 1183240
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-sound-OSS.so
>
> f754c000-f754e000 r-xp 00000000 00:1b 1183257
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-display-null.so
>
> f754e000-f754f000 r--p 00001000 00:1b 1183257
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-display-null.so
>
> f754f000-f7550000 rw-p 00002000 00:1b 1183257
> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/vm-display-null.so
>
> f7550000-f7552000 rw-p 00000000 00:00 0
>
> f7552000-f7702000 r-xp 00000000 00:1b 7921
> /lib/i386-linux-gnu/libc-2.23.so
>
> f7702000-f7704000 r--p 001af000 00:1b 7921
> /lib/i386-linux-gnu/libc-2.23.so
>
> f7704000-f7705000 rw-p 001b1000 00:1b 7921
> /lib/i386-linux-gnu/libc-2.23.so
>
> f7705000-f7708000 rw-p 00000000 00:00 0
>
> f7708000-f775b000 r-xp 00000000 00:1b 7917
> /lib/i386-linux-gnu/libm-2.23.so
>
> f775b000-f775c000 r--p 00052000 00:1b 7917
> /lib/i386-linux-gnu/libm-2.23.so
>
> f775c000-f775d000 rw-p 00053000 00:1b 7917
> /lib/i386-linux-gnu/libm-2.23.so
>
> f775d000-f7776000 r-xp 00000000 00:1b 7920
> /lib/i386-linux-gnu/libpthread-2.23.so
>
> f7776000-f7777000 r--p 00018000 00:1b 7920
> /lib/i386-linux-gnu/libpthread-2.23.so
>
> f7777000-f7778000 rw-p 00019000 00:1b 7920
> /lib/i386-linux-gnu/libpthread-2.23.so
>
> f7778000-f777a000 rw-p 00000000 00:00 0
>
> f777a000-f777d000 r-xp 00000000 00:1b 7923
> /lib/i386-linux-gnu/libdl-2.23.so
>
> f777d000-f777e000 r--p 00002000 00:1b 7923
> /lib/i386-linux-gnu/libdl-2.23.so
>
> f777e000-f777f000 rw-p 00003000 00:1b 7923
> /lib/i386-linux-gnu/libdl-2.23.so
>
> f777f000-f7780000 rw-p 00000000 00:00 0
>
> f7780000-f7781000 r-xp 00000000 00:00 0
> [vdso]
>
> f7781000-f77a4000 r-xp 00000000 00:1b 7919
> /lib/i386-linux-gnu/ld-2.23.so
>
> f77a4000-f77a5000 r--p 00022000 00:1b 7919
> /lib/i386-linux-gnu/ld-2.23.so
>
> f77a5000-f77a6000 rw-p 00023000 00:1b 7919
> /lib/i386-linux-gnu/ld-2.23.so
>
> ffc55000-ffcd1000 rw-p 00000000 00:00 0
> [stack]
>
> ./pharo: line 11: 14639 Aborted                 "$DIR"/"pharo-vm/pharo"
> --nodisplay "$@"
>
>
>
> 2018-03-05 17:38 GMT+01:00 Sabine Manaa <[email protected]>:
>>
>> Hi Mariano and Thierry,
>>
>> I load on Pharo 32 bit with:
>>
>>  spec
>> baseline: 'OSSubprocess'
>> with: [ spec
>> className: 'BaselineOfOSSubprocess';
>> repository: 'github://marianopeck/OSSubprocess:v0.2.5/repository' ];
>> import: 'OSSubprocess'
>>
>> Tomorrow I will try to load on Pharo7 and try to use OSProcess and see if
>> it still crashes.
>>
>> Sabine
>>
>>
>>
>>
>>
>> 2018-03-05 17:23 GMT+01:00 Mariano Martinez Peck <[email protected]>:
>>>
>>> Hi Sabine,
>>>
>>> Which OSSubprocess version are you using? If are using ConfigurationOf to
>>> load it, then please tell me which version from there.
>>> If you are using from baseline, tell me if you are grabbing master, a
>>> given tag , a given commit, etc.
>>> I will assume it is Pharo 32 bits rigth?
>>>
>>> I will continue with a more detailed answer once you get back to me with
>>> above questions.
>>>
>>> Cheers,
>>>
>>>
>>>
>>>
>>> On Mon, Mar 5, 2018 at 1:14 PM, Sabine Manaa <[email protected]>
>>> wrote:
>>>>
>>>> Hi Alistair,
>>>>
>>>> thank you! The message (pthread_setschedparam failed: Operation not
>>>> permitted)  is gone now. So Question 1 is solved.
>>>>
>>>> But the crashes (Question 2) are remaining. After calling several
>>>> OSSubprocess commands, Pharo crashes without PharoDebug.log.
>>>>
>>>> Anyone having an Idea what I could do?
>>>>
>>>> Sabine
>>>>
>>>>
>>>>
>>>>
>>>> 2018-03-05 13:07 GMT+01:00 Alistair Grant <[email protected]>:
>>>>>
>>>>> Hi Sabine,
>>>>>
>>>>> The docket container will need to be privileged to adjust thread
>>>>> priority.
>>>>>
>>>>>
>>>>> Cheers,
>>>>> Alistair
>>>>> (on phone)
>>>>>
>>>>> On 5 Mar. 2018 12:44, "Sabine Manaa" <[email protected]> wrote:
>>>>>
>>>>> We want to run Pharo6 with Ubuntu 16.04 Linux (in a Docker Image) and
>>>>> use
>>>>> OSSubprocess.
>>>>>
>>>>> For this, we use this vm: https://get.pharo.org/61+vmT
>>>>>
>>>>> [1] tells me: "If you are installing under Linux, then you must use a
>>>>> threaded heartbeat VM"
>>>>>
>>>>> We also created a file /etc/security/limits.d/pharo.conf and put the
>>>>> parameters in like described in the message [2] when startup. Also we
>>>>> log
>>>>> out and in.
>>>>>
>>>>> Question 1: the message (pthread_setschedparam failed: Operation not
>>>>> permitted) comes again to the console each time we use OSSubprocess. As
>>>>> far
>>>>> as I understand, it should disappear. Does this mean, that we did not
>>>>> edit
>>>>> the pharo.conf correctly?
>>>>>
>>>>> Question 2: after several uses of OSSubprocess within our application,
>>>>> Pharo
>>>>> crashes (no PharoDebug.log) with the following messages [3].
>>>>> How can we avoid this, what are we doing wrong?
>>>>>
>>>>> Question 3: sometimes (!) when we load (exactly the same code loaded
>>>>> with a
>>>>> script), we also get a crash, see [4]. Bug? wrong vm?
>>>>>
>>>>> I am unhappy with this and it takes a lot of time. What are we doing
>>>>> wrong?
>>>>> We want to run Pharo6 with OSSubprocess in Linux within a docker image
>>>>> for
>>>>> our staging environment.
>>>>>
>>>>> Help very welcome :-)
>>>>> Sabine
>>>>>
>>>>>
>>>>> [1]https://github.com/marianopeck/OSSubprocess
>>>>>
>>>>> [2](https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux)
>>>>>
>>>>> [3]crash message
>>>>>  *** buffer overflow detected ***:
>>>>> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
>>>>> ======= Backtrace: =========
>>>>> /lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf75f3377]
>>>>> /lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xf7683708]
>>>>> /lib/i386-linux-gnu/libc.so.6(+0xf58f8)[0xf76818f8]
>>>>> /lib/i386-linux-gnu/libc.so.6(+0xf75fa)[0xf76835fa]
>>>>>
>>>>> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo(aioEnable+0x31)[0x80c9811]
>>>>> /spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo[0x81215ee]
>>>>> [0xa1010e0]
>>>>> [0xa1c2bb8]
>>>>> [0xa15f50c]
>>>>> ....a lot more
>>>>>
>>>>>
>>>>>
>>>>> [4] PharoDebug.log
>>>>> HERE_BE_DRAGONS_HERE
>>>>> KeyNotFound: key #arg1 not found in Dictionary
>>>>> 5 March 2018 11:31:51.792142 am
>>>>>
>>>>> VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.2254
>>>>> uuid:
>>>>> 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
>>>>> StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid:
>>>>> 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
>>>>> VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git
>>>>> $
>>>>> Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942
>>>>> https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>>>>>
>>>>> Image: Pharo6.0 [Latest update: #60536]
>>>>>
>>>>> Dictionary>>errorKeyNotFound:
>>>>>         Receiver: a Dictionary(#arg3->1 #tmp2->2 )
>>>>>         Arguments and temporary variables:
>>>>>                 aKey:   #arg1
>>>>>         Receiver's instance variables:
>>>>>                 tally:  2
>>>>>                 array:  {nil. nil. #arg3->1. #tmp2->2. nil}
>>>>>
>>>>>
>>>>> [ self errorKeyNotFound: key ] in Dictionary>>at:
>>>>>         Receiver: a Dictionary(#arg3->1 #tmp2->2 )
>>>>>         Arguments and temporary variables:
>>>>>                 key:    #arg1
>>>>>         Receiver's instance variables:
>>>>>                 tally:  2
>>>>>                 array:  {nil. nil. #arg3->1. #tmp2->2. nil}
>>>>>
>>>>>
>>>>> Dictionary>>at:ifAbsent:
>>>>>         Receiver: a Dictionary(#arg3->1 #tmp2->2 )
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   #arg1
>>>>>                 arg2:   [ self errorKeyNotFound: key ]
>>>>>                 tmp1:   nil
>>>>>         Receiver's instance variables:
>>>>>                 tally:  2
>>>>>                 array:  {nil. nil. #arg3->1. #tmp2->2. nil}
>>>>>
>>>>>
>>>>> Dictionary>>at:
>>>>>         Receiver: a Dictionary(#arg3->1 #tmp2->2 )
>>>>>         Arguments and temporary variables:
>>>>>                 key:    #arg1
>>>>>         Receiver's instance variables:
>>>>>                 tally:  2
>>>>>                 array:  {nil. nil. #arg3->1. #tmp2->2. nil}
>>>>>
>>>>>
>>>>> IRPushClosureCopy>>indexForVarNamed:
>>>>>         Receiver: pushClosureCopyCopiedValues: #() args: #(#arg3)
>>>>>         Arguments and temporary variables:
>>>>>                 aName:  #arg1
>>>>>         Receiver's instance variables:
>>>>>                 sourceNode:     RBBlockNode([ :arg3 |
>>>>> | tmp2 |
>>>>> tmp2 := arg3.
>>>>> tmp2
>>>>>         nextPutAll: arg...etc...
>>>>>                 bytecodeIndex:  nil
>>>>>                 sequence:       an IRSequence (1)
>>>>>                 destination:    an IRSequence (3)
>>>>>                 successor:      nil
>>>>>                 numArgs:        nil
>>>>>                 blockSequence:  an IRSequence (2)
>>>>>                 tempMap:        a Dictionary(#arg3->1 #tmp2->2 )
>>>>>                 copiedValues:   #()
>>>>>                 lastBlockSequence:      an IRSequence (2)
>>>>>                 arguments:      #(#arg3)
>>>>>
>>>>>
>>>>> IRTranslatorV2>>visitPushTemp:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 tmp:    pushTemp: #arg1
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRPushTemp>>accept:
>>>>>         Receiver: pushTemp: #arg1
>>>>>         Arguments and temporary variables:
>>>>>                 aVisitor:       an IRTranslatorV2
>>>>>         Receiver's instance variables:
>>>>>                 sourceNode:     RBArgumentNode(arg1)
>>>>>                 bytecodeIndex:  nil
>>>>>                 sequence:       an IRSequence (2)
>>>>>                 name:   #arg1
>>>>>
>>>>>
>>>>> IRTranslatorV2(IRVisitor)>>visitNode:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 elem:   pushTemp: #arg1
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRTranslatorV2>>visitInstruction:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 instr:  pushTemp: #arg1
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> [ :arg2 | self visitInstruction: arg2 ] in
>>>>> IRTranslatorV2(IRVisitor)>>visitSequence:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   an IRSequence (2)
>>>>>                 arg2:   pushTemp: #arg1
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> OrderedCollection>>do:
>>>>>         Receiver: an OrderedCollection(pushTemp: #arg3 popIntoTemp:
>>>>> #tmp2 pushTemp:
>>>>> #tmp2 pushDup pushTemp: ...etc...
>>>>>         Arguments and temporary variables:
>>>>> <<error during printing>
>>>>>         Receiver's instance variables:
>>>>>                 array:  an Array(pushTemp: #arg3 popIntoTemp: #tmp2
>>>>> pushTemp: #tmp2
>>>>> pushDup push...etc...
>>>>>                 firstIndex:     1
>>>>>                 lastIndex:      25
>>>>>
>>>>>
>>>>> IRSequence>>do:
>>>>>         Receiver: an IRSequence (2)
>>>>>         Arguments and temporary variables:
>>>>>                 aBlock:         [ :arg2 | self visitInstruction: arg2 ]
>>>>>         Receiver's instance variables:
>>>>>                 sequence:       an OrderedCollection(pushTemp: #arg3
>>>>> popIntoTemp: #tmp2
>>>>> pushTemp: #tm...etc...
>>>>>                 orderNumber:    2
>>>>>                 method:         an IRMethod
>>>>>
>>>>>
>>>>> IRTranslatorV2(IRVisitor)>>visitSequence:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   an IRSequence (2)
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRTranslatorV2>>visitSequence:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 instructionSequence:    an IRSequence (2)
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRSequence>>accept:
>>>>>         Receiver: an IRSequence (2)
>>>>>         Arguments and temporary variables:
>>>>>                 aVisitor:       an IRTranslatorV2
>>>>>         Receiver's instance variables:
>>>>>                 sequence:       an OrderedCollection(pushTemp: #arg3
>>>>> popIntoTemp: #tmp2
>>>>> pushTemp: #tm...etc...
>>>>>                 orderNumber:    2
>>>>>                 method:         an IRMethod
>>>>>
>>>>>
>>>>> IRTranslatorV2(IRVisitor)>>visitNode:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 elem:   an IRSequence (2)
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> [ :arg2 | self visitNode: arg2 ] in
>>>>> IRTranslatorV2(IRVisitor)>>visitNodes:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   a SortedCollection(an IRSequence (1) an
>>>>> IRSequence (2) an
>>>>> IRSequence (3) ...etc...
>>>>>                 arg2:   an IRSequence (2)
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> SortedCollection(OrderedCollection)>>do:
>>>>>         Receiver: a SortedCollection(an IRSequence (1) an IRSequence
>>>>> (2) an
>>>>> IRSequence (3) an IRSequence (4)...etc...
>>>>>         Arguments and temporary variables:
>>>>> <<error during printing>
>>>>>         Receiver's instance variables:
>>>>>                 array:  an Array(an IRSequence (1) an IRSequence (2) an
>>>>> IRSequence (3) an
>>>>> IRSequ...etc...
>>>>>                 firstIndex:     1
>>>>>                 lastIndex:      7
>>>>>                 sortBlock:      [ :arg2 :arg3 | arg2 orderNumber <=
>>>>> arg3 orderNumber ]
>>>>>
>>>>>
>>>>> IRTranslatorV2(IRVisitor)>>visitNodes:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   a SortedCollection(an IRSequence (1) an
>>>>> IRSequence (2) an
>>>>> IRSequence (3) ...etc...
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRTranslatorV2>>visitSequences:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 arg1:   a SortedCollection(an IRSequence (1) an
>>>>> IRSequence (2) an
>>>>> IRSequence (3) ...etc...
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRTranslatorV2>>visitMethod:
>>>>>         Receiver: an IRTranslatorV2
>>>>>         Arguments and temporary variables:
>>>>>                 anIr:   an IRMethod
>>>>>         Receiver's instance variables:
>>>>>                 gen:    an IRBytecodeGenerator
>>>>>                 currentScope:   a Stack(pushClosureCopyCopiedValues:
>>>>> #() args: #(#arg3) an
>>>>> IRMeth...etc...
>>>>>                 trailer:        a CompiledMethodTrailer
>>>>>                 tempVectorStack:        a Stack()
>>>>>                 compilationContext:     a CompilationContext
>>>>>
>>>>>
>>>>> IRMethod>>accept:
>>>>>         Receiver: an IRMethod
>>>>>         Arguments and temporary variables:
>>>>>                 aVisitor:       an IRTranslatorV2
>>>>>         Receiver's instance variables:
>>>>>                 sourceNode:     logError: arg1 inContext: arg2
>>>>>         self
>>>>>                 logStdErrorDuring: [ :arg3 |...etc...
>>>>>                 startSequence:  an IRSequence (1)
>>>>>                 numArgs:        2
>>>>>                 properties:     nil
>>>>>                 tempMap:        a Dictionary(#arg1->1 #arg2->2 )
>>>>>                 pragmas:        an OrderedCollection()
>>>>>                 additionalLiterals:     an OCLiteralSet(#ifNotNil:)
>>>>>                 compiledMethod:         nil
>>>>>                 compilationContext:     a CompilationContext
>>>>>                 irPrimitive:    primitive 0
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sent from:
>>>>> http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>
>>
>

Reply via email to