I got some questions on this. The commands in the NTR Debugger are throwing me for a loop.
Question:
How do the breakpoint commands work?
Judging from the NTR client, there are 3 breakpoint commands: 'bpadd', 'bpdis', 'bpena'
I'm assuming "add" means address, "dis" means disable and "ena" means enable. I can enable and disable breakpoints depending on the pid entered into 'bpena' or 'bpdis'. Not sure what that is really doing though. 'bpadd' seems to only work when it wants to so there is something I definitely don't understand here.
Take this for example. When I run memlayout() on a pid, I get the following result:
For my purposes in particular, I am interested in the memory region 0x08000000 - 0x09a6bfff. I would like to set up a read breakpoint in that region. I know that this region exists because I can read it using the data() command. I can also write directly to the region in question using the write() command and I can see the results directly on my 3DS (I am overwriting strings).
However, if I were to make a breakpoint such as bpadd(0x80B0000), I get the following result:
Setting up read and write breakpoints in memory would be super useful. If someone could clear up my confusion on this matter, it would be much appreciated
Thanks
Question:
How do the breakpoint commands work?
Judging from the NTR client, there are 3 breakpoint commands: 'bpadd', 'bpdis', 'bpena'
I'm assuming "add" means address, "dis" means disable and "ena" means enable. I can enable and disable breakpoints depending on the pid entered into 'bpena' or 'bpdis'. Not sure what that is really doing though. 'bpadd' seems to only work when it wants to so there is something I definitely don't understand here.
Take this for example. When I run memlayout() on a pid, I get the following result:
null
valid memregions:
00100000 - 0040ffff , size: 00310000
08000000 - 09a6bfff , size: 01a6c000
0fffc000 - 10000fff , size: 00005000
10002000 - 10002fff , size: 00001000
14000000 - 1627ffff , size: 02280000
For my purposes in particular, I am interested in the memory region 0x08000000 - 0x09a6bfff. I would like to set up a read breakpoint in that region. I know that this region exists because I can read it using the data() command. I can also write directly to the region in question using the write() command and I can see the results directly on my 3DS (I am overwriting strings).
However, if I were to make a breakpoint such as bpadd(0x80B0000), I get the following result:
null
freeid: 8
rtCheckRemoteMemoryRegionSafeForWrite failed :d8e007f5
init breakpoint failed.
Setting up read and write breakpoints in memory would be super useful. If someone could clear up my confusion on this matter, it would be much appreciated
Thanks