簡體   English   中英

64 位 iOS 設備上的 asm("trap")

[英]asm("trap") on 64-bit iOS devices

在我自己開發的斷言宏中,我一直在 iOS 設備上使用 asm("trap")(或在 iOS 模擬器上使用 asm("int3"))來中斷調試器。 但是,在設備的 64 位構建中,我得到了陷阱指令的“無法識別的指令助記符”。 是否有 arm64 的等效項?

(替代方案如 __builtin_trap() 或 raise(SIGINT) 確實有效,但有一些我不喜歡的行為;前者不會讓你繼續休息,后者是 function 所以你總是低於一步當你打破時你需要在堆棧中的位置。)

我能夠使用asm("svc 0");進入調試器(並在之后繼續asm("svc 0"); 我不確定這是正確的方法,但它似乎做了這個工作。

沒有嘗試過 iOS,但在 Linux 上, brk指令導致SIGTRAP被引發,如果一個正在運行,它會陷入調試器。

asm("brk #0");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM