So CpuBreakpoint(), or just asm volatile ("int3"); , still won't transfer
control to gdb. :(
asm volatile ("xx: jmp xx;"); however allows me to use ctrl-c in gdb.
I was hoping the following would be of great help:
Index: ShellPkg/Application/Shell/ShellProtocol.c
===================================================================
--- ShellPkg/Application/Shell/ShellProtocol.c (revision 14307)
+++ ShellPkg/Application/Shell/ShellProtocol.c (working copy)
@@ -1496,6 +1496,8 @@
Status = gBS->InstallProtocolInterface(&NewHandle,
&gEfiShellParametersProtocolGuid, EFI_NATIVE_INTERFACE,
&ShellParamsProtocol);
ASSERT_EFI_ERROR(Status);
+ ShellPrintEx(-1, -1, L"+++ ld: 0x%x\r\n", LoadedImage->ImageBase);
+
///@todo initialize and install ShellInterface protocol on the new
image for compatibility if - PcdGetBool(PcdShellSupportOldProtocols)
//
and combined with:
(gdb) add-symbol-file
../Build/AppPkg/DEBUG_GCC46/X64/AppPkg/Applications/Python/PythonCore/DEBUG/Python.debug
0x3cb3a000
it gives me something close but the function in which I placed the
loop-forever is 0x260 bytes higher up in memory. So I can adjust the load
address by 0x260 and, VoilĂ , I have symbolic debugging! (for this shell
loaded app) But is 0x260 a constant or is it going to change?
So nice to have the 'n' step-over command working! :)
(note: this is qemu 1.4.0, gdb 7.5.1, gcc 4.7.1 but building with -t GCC46,
and without Andrei's sym loader - so I cant step into system calls)
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel