crashing ASM buffer address?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

hi!
I'm trying to make my VSTi compatible with the JUCE host example.
It's all working good- but I have a crashing asm buffer for the polyphonic portamento.
What's happening here, can you guess for me?
I'm really out of my depth in asm,
It seems I can't get a valid buffer address?
-any advice on how to create a valid address?
the host poof crashes clean when note on- ie. the stream with invalid address opens
my environment is Flowstone
I'm a novice with some time at Flowstone, so I'm prolly going to have trouble comprehending :D
all success!

edit- the address is valid in Orion and FL

Post

Segfault? Pointers involved?

There is not enough information on this thread, but you might want to try to reproduce with a Debug version if not doing so already. Ideally attached to a debugger.

Alternatively, getting a stack trace if it only happens in release builds, but this is completely OS and compiler dependant.
Last edited by rafa1981 on Sat Jan 29, 2022 7:14 am, edited 1 time in total.

Post

I have done what I can de-bugging
here is a valid address with copy and paste in Orion==>
address working.png
--and the address in JUCE Host==>
address broken.png
there is no release and de-bug in Flowstone
-but perhaps I could try to build a de-bug of JUCE Host

I guess it was a long shot
ty!

-if anyone wants a cool coding puzzle to solve,
it's open source, so let me know if so and I'll up the relevant files atm

here's the asm, it will let me create the location,
but when audio engages- it's crashes

Code: Select all

streamin addr;
streamin size;
streamin data;
streamboolin write;
streamout Out;


int temp = 0;
int zero = 0;

mov eax,addr[0];
cmp eax,0;
jz bypass;

	maxps xmm0,zero;
	minps xmm0,size;
	pslld xmm0,2;
	paddd xmm0,addr;
	movaps temp,xmm0;
 
	mov eax,write[0];
	cmp eax,0;
	jz skip0;
	mov eax, temp[0];
	fld data[0]; fstp [eax];
	skip0:
	mov eax, temp[0];
	fld [eax]; fstp Out[0];
	
	mov eax,write[1];
	cmp eax,0;
	jz skip1;
	mov eax, temp[1];
	fld data[1]; fstp [eax];
	skip1:
	mov eax, temp[1];
	fld [eax]; fstp Out[1];
	
	mov eax,write[2];
	cmp eax,0;
	jz skip2;
	mov eax, temp[2];
	fld data[2]; fstp [eax];	
	skip2:
	mov eax, temp[2];
	fld [eax]; fstp Out[2];
	
	mov eax,write[3];
	cmp eax,0;
	jz skip3;
	mov eax, temp[3];
	fld data[3]; fstp [eax];
	skip3:
	mov eax, temp[3];
	fld [eax]; fstp Out[3];
	
bypass:
You do not have the required permissions to view the files attached to this post.

Post

I don't know about flowstone, but probably as you say a debug build of the host will let you see the each surrounding instruction and the register contents when it crashes.
Last edited by rafa1981 on Sat Jan 29, 2022 7:15 am, edited 1 time in total.

Post

thank- will be a stretch-
but as it's a host dependent problem,
might be fruitful if I can figure out how to log

Post Reply

Return to “DSP and Plugin Development”