Well documented GBA games if you are thinking as seen on the likes of
https://datacrystal.romhacking.net/ or various complete disassemblies are a bit thin on the ground.
Again though most things are available on debugging emulator for minimal effort. Doing what is effectively some kind of human driven equivalent of
http://fceux.com/web/help/CodeDataLogger.html (though as of a version or two back no$gba should have something like that as well) would be a nightmare in comparison. There are times where you get to go over code with the proverbial fine tooth comb to find things, this should not be one of them.
Basic idea.
You have three main types of operations a CPU does to memory (or itself in some regards) in the general concepts of computing (and computer security a bit further down the line).
Read
Write
Execute
Consequently there are three main classes of breakpoint, or watchpoint/log point.
Break on Read (BPR)
Break on Write (BPW)
Break on Execute (BPE but also some other things depending upon the emulator/debugger/system)
Better debuggers will give a few more options like if between these ranges then tell me, or abilities to do maths/boolean maths on the results.
Their job is to halt emulation, say this thing just did the thing you told me to watch for, here are all the register states and last 10 or so instructions executed. Log/watch stuff will log stuff to a text file or other output for your later perusal.
Quite useful (especially if you have the fceux style function logger) when doing something odd/rare or just wanting to eliminate -- want to find jump in say Mario then you would get somewhere, start running, idling... basically everything but jump such that it has seen everything else. Jumping will then be the last new thing executed in that scenario and you have your answer.
Anyway you set one of those on something you found with a cheat (or downloaded from a cheat database (
https://web.archive.org/web/20191123185756/https://doc.kodewerx.org/hacking_gba.html for how to decode cheats), get something to read/write/execute it in anger and you have your hooking point, or at least something you might want to follow back up the last 10 or so executed instructions to get a nice hooking point for (debatable for a rumble command you are basically jumping to and back from, if doing something more fundamental to the game's existing logic then you might want to go back -- changed controls, changed damage calculation, maybe adding the different effect based on hidden wall or not, speed, changed audio cue... probably all happen differently to the simple health value or further on from the button press if you start from that instead).
About the only thing I would add is other than cheat values and button presses if it changed a sprite on screen as a part/consequence of what you are really looking for then you want the OAM as that is what controls sprites and is good to hook, if it loads something from the ROM and you can find it in the ROM (many methods here but we will leave that aspect of ROM hacking for now) then breakpoints (obviously read and execute only) work for that too.