First, your screenshot is normal. It is telling you that a bunch of the DLLs that RackAFX uses do not have a program database file (PDB) -- this is because the DLLs are release-version and the manufacturer did not include the PDB files. This is not a problem because you do not care about stepping into those DLLs.
Secondly, have you tried doing a basic Constructor-debug to watch your constructor get called as the plugin is loaded? On the Video page, you will find this tutorial:
It involves fixing a "broken" constructor that has a toxic pointer (a common mistake that people often make). But, the steps to launch and set the debug breakpoints are the same. Once you can get the constructor to hit this breakpoint, then you can break inside any future function that gets called.
PS: also note that the process() functions will not be called until audio is streaming (hit the play button)
Yes, I know about process only called when audio streams, were using debugging last implementation -when I wrote code in ProcessAudioFrame- and checking variable values and other stuff with success, the issue started when I tried to use buffers.
EDIT: Finally I was able to debug constructor, and finally got something: when execution gets into createObject() at RackAFXDLL.cpp I get this error message: rafxplugincontainer.cpp not found. Then if I press F10 the execution continues but there's no call to any process method.
I hope it will help us to know where's the issue.
I am not having issues like this. Here is what I did, using the latest version of RackAFX v6.5.16
1) created new project named PassThru
2) compiled it - no errors
3) started the debugger in Visual Studio and set a breakpoint in the Constructor
4) loaded the DLL in RackAFX - the breakpoint was hit in the constructor, and there were no errors.
If you can compile and load a plug-in into RackAFX (without the debugger) then you should not have an issue with debugging. The error message you got is from a .cpp file that is located inside the rackAFX-to-vst library called Sock2VST3d.lib and Sock2VST3.lib -- you can find the link to them in the VS project settings (Linker, Input). And, it is true that you can't step into those libraries. But you should not need to.
Which version of VS are you using? The reason I'm asking is that I am about to do a major release of a new version of RackAFX and if there are any compiler-specific issues, I need to catch them.
Sorry for the delay in my answer, I've been a bit busy. I don't know either what is the issue, so I'll try again to make a fresh new project and do all the stuff step by step and let you know the result. Maybe reinstalling RackAFX would be a nice idea too.
I'm using VS 2013, but I don't think it's because of the IDE, I was working with the same version when tried to implement my code into processAudioFrame() and I was able to debug and enter that method. In fact, breakpoint located in the constructor was actually hit -I mean, this last test I've been doing-, but when constructor finishes execution there's no call for buffer method.
Hi again Will
I've started a new fresh project with pass thru code -I mean, no code actually-, put a breakpoint in the processRackAFXbuffer and debug. That way the execution HITS the method, as it has to be. So I'm going to link my libraries and write the code step by step to know exactly what is the source of the disfunctionality, and I let you know.
Thanks a lot for your help
Finally I made a new fresh project and went step by step. Everything was fine this time and now I can debug my code. At the moment I'm having some errors with memory allocation because of the buffer sizes or something -I'm on it- and I can't tell you if the plugin works, but the buffer issue is solved and everything is working fine in RackAFX side.
Thanks a lot for your help, I'll let you know the results when I finish =)
Yeah, I'm aware of that, tried to allocate in my first sessions and the program crashed, so I learned the hard way.
By the way... Did you know what were the problem? Dumbest thing, as usual when programming. When I rebuild from RackAFX the program asks me for reloading modified files. I used to say 'yes' and realized that sometimes - I don't know why it doesn't happen all the time, but sure there's a logical answer- the m_bWantBuffers in plugin.cpp turned to FALSE. So it was driving me crazy, as I changed the flag to true, but reloading set it to false...
So right now I'm debuggin the code -lot of misfunctioning algorithms- and I hope it will be finished in about 7-10 days if everything goes well. I'll let you know.
EDIT: OK, this is not a bug, Jorge. I read your post too quickly.
The problem is that you set m_bWantBuffers = true in the CPlugIn constructor, in plugin.cpp.
You need to set this flag (as well as the VST buffer version and m_bWantAllMIDI, etc...) in your derived class's constructor.
There are four files you should never modify as they are periodically updated/upgraded as new features are added to RackAFX. The four files are:
This rule is actually documented (somewhere) in my FX book.
So that is why you were seeing that variable reset - it was copying a fresh .cpp file over your modified one.
Ah ha - Jorge thanks for that bug report - this does make sense though, where synchronizing the code resets that flag.
I will check on this now and try to get a fix into the next version.
Most Users Ever Online: 152
Currently Browsing this Page:
Guest Posters: 1
Newest Members:Mistahbrock, Jas, Rowan, sojourn, fabhenr, rg1, Niklas, Wutru, Tim Campbell, Danny Jonel
Moderators: W Pirkle: 573
Administrators: Tom: 74, JD Young: 80, Will Pirkle: 0, W Pirkle: 573, VariableCook: 3