I'm sorry for opening yet another topic about this TCP Gecko.NET issue but it has to catch some attention since many people are suffering from this. I also spent some time trying to debug the issue. Luckily, exception logs have been written. I'm referring to the TCP Gecko.NET build by wj44 in case you want to follow along so let's get started with the analysis.
The following appears to be the first exception that is being thrown:
This stack trace must be read from the bottom to the top meaning that the function calls at the bottom were called first and then the one above. In this case we can see that the function
in the file
has been called and it threw an exception in line 136. What happens in this line? The gecko handler dumps memory for the memory viewer cells. The called function looks as follows:
Let's follow that in the TCPGecko.cs file and we find the function definition:
The second lowest entry in the stack trace says that in this function, the second line has thrown the exception which obviously is
This overloaded function can be found right below in the source code.
The final stack trace points to line 525 but it only contains a Byte assignment:
It's quite obvious that reading memory somehow fails but how does this make sense? It works on some games but not on others. Also it seems to work flawlessly on static screens like the main screen for any game but not everywhere after. As you might have noticed, I indeed tried switching to the memory viewer when the crash occurred but as we know, the feature isn't broken by default.
I will go over the second exception much quicker now:
Line 535 contains
, line 566 is empty (wtf?), line 1400 calls
, line 492 calls
again and finally line 631 executes
. Is the read response possibly invalid?
I'm not really sure how this can be fixed therefore. Anyway, I'm looking forward to you guys' opinions.
@Mr. Mysterio
@NWPlayer123
@Marionumber1
@Chadderz
The following appears to be the first exception that is being thrown:
Code:
12/12/2015 2:34:08 AM: Opened log
2:34:08 AM: Exception occured!
Message: Exception of type 'TCPTCPGecko.ETCPGeckoException' was thrown.
Stack Trace:
at TCPTCPGecko.TCPGecko.Dump(UInt32 startdump, UInt32 enddump, Stream[] saveStream) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\TCPGecko.cs:line 525
at TCPTCPGecko.TCPGecko.Dump(UInt32 startdump, UInt32 enddump, Stream saveStream) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\TCPGecko.cs:line 492
at GeckoApp.MemoryViewer.Update(Boolean fast) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\MemViewer.cs:line 136
Inner Exception:
Code:
public void Update(bool fast)
Code:
MemViewer.cs
Code:
gecko.Dump(sAddress, sAddress + 0x100, miniDump);
Code:
public void Dump(UInt32 startdump, UInt32 enddump, Stream saveStream)
{
Stream [] tempStream = { saveStream };
Dump(startdump, enddump, tempStream);
}
Code:
Dump(startdump, enddump, tempStream);
The final stack trace points to line 525 but it only contains a Byte assignment:
Code:
Byte retry = 0;
I will go over the second exception much quicker now:
Code:
2:38:22 AM: Exception occured!
Message: Exception of type 'TCPTCPGecko.ETCPGeckoException' was thrown.
Stack Trace:
at TCPTCPGecko.TCPGecko.Dump(UInt32 startdump, UInt32 enddump, Stream[] saveStream) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\TCPGecko.cs:line 533
at TCPTCPGecko.TCPGecko.Dump(UInt32 startdump, UInt32 enddump, Stream saveStream) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\TCPGecko.cs:line 492
at GeckoApp.MemoryViewer.Update(Boolean fast) in d:\Consoles\WiiU\Applications\TCP Gecko.NET\Source\Gecko dNet\MemViewer.cs:line 136
Inner Exception:
Code:
GameNameStored = false;
Code:
Dump(paddress, paddress + 4, stream);
Code:
Dump(startdump, enddump, tempStream);
Code:
Byte reply = response[0];
Code:
Byte[] response = new Byte[1];
if (GeckoRead(response, 1) != FTDICommand.CMD_OK)
{
//Major fail, give it up
GeckoWrite(BitConverter.GetBytes(GCFAIL), 1);
throw new ETCPGeckoException(ETCPErrorCode.FTDIReadDataError);
}
@Mr. Mysterio
@NWPlayer123
@Marionumber1
@Chadderz