This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何获取当前PC并作为参数传递给某个函数



1.  起因:因为某种原因,需要把原来的代码做成库给第客户调用,但是原来的代码用到好多定义为死循环的DEBUG_BREAK, 如果可以直接调试代码当然没有问题,但是现在要作为库给别人使用,这种代码就很不合理了,我的想法是能不能让DEBUG_BREAK获取当前PC值,并传递给某个接口函数,然后根据Map文件可以大致定位问题出在哪里。

2.问题:要获取PC,多半是要使用内嵌汇编,但是TI编译器的内嵌汇编的格式是怎么样的?比如怎么把PC的值移到某个C变量里面去?我试了一下gcc格式,但是编译不过:

#define DEBUG_BREAK() do {	UINT32 PC;				\
				__asm(	"	mov %0, pc"		\
						:"=r"(PC));		\
					*DebugBreakHook(PC);		\
			}while (0)					\

或者哪位大虾有更好的方法,还望不吝赐教