亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stabs-dbgfmt.c

?? 支持AMD64的匯編編譯器源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Stabs debugging format * *  Copyright (C) 2003  Michael Urman * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include <util.h>/*@unused@*/ RCSID("$Id: stabs-dbgfmt.c 1168 2004-10-31 01:07:52Z peter $");#define YASM_LIB_INTERNAL#define YASM_BC_INTERNAL#include <libyasm.h>typedef enum {    N_UNDF = 0x00,	/* Undefined */    N_GSYM = 0x20,	/* Global symbol */    N_FNAME = 0x22,	/* Function name (BSD Fortran) */    N_FUN = 0x24,	/* Function name or Text segment variable */    N_STSYM = 0x26,	/* Data segment file-scope variable */    N_LCSYM = 0x28,	/* BSS segment file-scope variable */    N_MAIN = 0x2a,	/* Name of main routine */    N_ROSYM = 0x2c,	/* Variable in .rodata section */    N_PC = 0x30,	/* Global symbol (Pascal) */    N_SYMS = 0x32,	/* Number of symbols (Ultrix V4.0) */    N_NOMAP = 0x34,	/* No DST map */    N_OBJ = 0x38,	/* Object file (Solaris2) */    N_OPT = 0x3c,	/* Debugger options (Solaris2) */    N_RSYM = 0x40,	/* Register variable */    N_M2C = 0x42,	/* Modula-2 compilation unit */    N_SLINE = 0x44,	/* Line numbers in .text segment */    N_DSLINE = 0x46,	/* Line numbers in .data segment */    N_BSLINE = 0x48,	/* Line numbers in .bss segment */    N_BROWS = 0x48,	/* Source code .cb file's path */    N_DEFD = 0x4a,	/* GNU Modula-2 definition module dependency */    N_FLINE = 0x4c,	/* Function start/body/end line numbers (Solaris2) */    N_EHDECL = 0x50,	/* GNU C++ exception variable */    N_MOD2 = 0x50,	/* Modula2 info for imc (Ultrix V4.0) */    N_CATCH = 0x54,	/* GNU C++ catch clause */    N_SSYM = 0x60,	/* Structure or union element */    N_ENDM = 0x62,	/* Last stab for module (Solaris2) */    N_SO = 0x64,	/* Path and name of source files */    N_LSYM = 0x80,	/* Stack variable */    N_BINCL = 0x84,	/* Beginning of include file */    N_SOL = 0x84,	/* Name of include file */    N_PSYM = 0xa0,	/* Parameter variable */    N_EINCL = 0xa2,	/* End of include file */    N_ENTRY = 0xa4,	/* Alternate entry point */    N_LBRAC = 0xc0,	/* Beginning of lexical block */    N_EXCL = 0xc2,	/* Placeholder for a deleted include file */    N_SCOPE = 0xc4,	/* Modula 2 scope info (Sun) */    N_RBRAC = 0xe0,	/* End of lexical block */    N_BCOMM = 0xe2,	/* Begin named common block */    N_ECOMM = 0xe4,	/* End named common block */    N_ECOML = 0xe8,	/* Member of common block */    N_WITH = 0xea,	/* Pascal with statement: type,,0,0,offset (Solaris2) */    N_NBTEXT = 0xf0,	/* Gould non-base registers */    N_NBDATA = 0xf2,	/* Gould non-base registers */    N_NBBSS = 0xf4,	/* Gould non-base registers */    N_NBSTS = 0xf6,	/* Gould non-base registers */    N_NBLCS = 0xf8	/* Gould non-base registers */} stabs_stab_type;typedef struct yasm_dbgfmt_stabs {    yasm_dbgfmt_base dbgfmt;	    /* base structure */    yasm_object *object;    yasm_symtab *symtab;    const char *filename;    yasm_linemap *linemap;    yasm_arch *arch;} yasm_dbgfmt_stabs;typedef struct {    unsigned long lastline;	/* track line and file of bytecodes */    unsigned long curline;    const char *lastfile;    const char *curfile;    unsigned int stablen;	/* size of a stab for current machine */    unsigned long stabcount;	/* count stored stabs; doesn't include first */    yasm_section *stab;		/* sections to which stabs, stabstrs appended */    yasm_section *stabstr;    yasm_bytecode *basebc;      /* base bytecode from which to track SLINEs */    yasm_dbgfmt_stabs *dbgfmt_stabs;} stabs_info;typedef struct {    /*@null@*/ yasm_bytecode *bcstr;	/* bytecode in stabstr for string */    stabs_stab_type type;		/* stab type: N_* */    unsigned char other;		/* unused, but stored here anyway */    unsigned short desc;		/* description element of a stab */    /*@null@*/ yasm_symrec *symvalue;	/* value element needing relocation */    /*@null@*/yasm_bytecode *bcvalue;	/* relocated stab's bytecode */    unsigned long value;		/* fallthrough value if above NULL */} stabs_stab;/* Bytecode types */typedef struct {    yasm_bytecode bc;	/* base structure */    /*@only@*/ char *str;} stabs_bc_str;typedef struct {    yasm_bytecode bc;	/* base structure */    stabs_stab *stab;} stabs_bc_stab;/* Bytecode callback function prototypes */static void stabs_bc_str_destroy(yasm_bytecode *bc);static void stabs_bc_str_print(const yasm_bytecode *bc, FILE *f, int			       indent_level);static yasm_bc_resolve_flags stabs_bc_str_resolve    (yasm_bytecode *bc, int save, yasm_calc_bc_dist_func calc_bc_dist);static int stabs_bc_str_tobytes    (yasm_bytecode *bc, unsigned char **bufp, void *d,     yasm_output_expr_func output_expr,     /*@null@*/ yasm_output_reloc_func output_reloc);static void stabs_bc_stab_destroy(yasm_bytecode *bc);static void stabs_bc_stab_print(const yasm_bytecode *bc, FILE *f, int				indent_level);static yasm_bc_resolve_flags stabs_bc_stab_resolve    (yasm_bytecode *bc, int save, yasm_calc_bc_dist_func calc_bc_dist);static int stabs_bc_stab_tobytes    (yasm_bytecode *bc, unsigned char **bufp, void *d,     yasm_output_expr_func output_expr,     /*@null@*/ yasm_output_reloc_func output_reloc);/* Bytecode callback structures */static const yasm_bytecode_callback stabs_bc_str_callback = {    stabs_bc_str_destroy,    stabs_bc_str_print,    stabs_bc_str_resolve,    stabs_bc_str_tobytes};static const yasm_bytecode_callback stabs_bc_stab_callback = {    stabs_bc_stab_destroy,    stabs_bc_stab_print,    stabs_bc_stab_resolve,    stabs_bc_stab_tobytes};yasm_dbgfmt_module yasm_stabs_LTX_dbgfmt;static /*@null@*/ /*@only@*/ yasm_dbgfmt *stabs_dbgfmt_create(const char *in_filename, const char *obj_filename,		    yasm_object *object, yasm_objfmt *of, yasm_arch *a){    yasm_dbgfmt_stabs *dbgfmt_stabs = yasm_xmalloc(sizeof(yasm_dbgfmt_stabs));    dbgfmt_stabs->dbgfmt.module = &yasm_stabs_LTX_dbgfmt;    dbgfmt_stabs->filename = in_filename;    dbgfmt_stabs->object = object;    dbgfmt_stabs->symtab = yasm_object_get_symtab(object);    dbgfmt_stabs->linemap = yasm_object_get_linemap(object);    dbgfmt_stabs->arch = a;    return (yasm_dbgfmt *)dbgfmt_stabs;}static voidstabs_dbgfmt_destroy(/*@only@*/ yasm_dbgfmt *dbgfmt){    yasm_xfree(dbgfmt);}/* Create and add a new strtab-style string bytecode to a section, updating * offset on insertion; no optimization necessary *//* Copies the string, so you must still free yours as normal */static yasm_bytecode *stabs_dbgfmt_append_bcstr(yasm_section *sect, const char *str){    yasm_bytecode *bc, *precbc;    stabs_bc_str *bc_str;       precbc = yasm_section_bcs_last(sect);    bc = yasm_bc_create_common(&stabs_bc_str_callback, sizeof(stabs_bc_str),			       0);    bc_str = (stabs_bc_str *)bc;    bc_str->str = yasm__xstrdup(str);    bc->len = strlen(str)+1;    bc->offset = precbc ? precbc->offset + precbc->len : 0;    yasm_section_bcs_append(sect, bc);    return bc;}/* Create and add a new stab bytecode to a section, updating offset on * insertion; no optimization necessary. *//* Requires a string bytecode, or NULL, for its string entry */static stabs_stab *stabs_dbgfmt_append_stab(stabs_info *info, yasm_section *sect,			 /*@null@*/ yasm_bytecode *bcstr, stabs_stab_type type,			 unsigned long desc, /*@null@*/ yasm_symrec *symvalue,			 /*@null@*/ yasm_bytecode *bcvalue, unsigned long value){    yasm_bytecode *bc, *precbc;    stabs_bc_stab *bc_stab;    stabs_stab *stab = yasm_xmalloc(sizeof(stabs_stab));    stab->other = 0;    stab->bcstr = bcstr;    stab->type = type;    stab->desc = (unsigned short)desc;    stab->symvalue = symvalue;    stab->bcvalue = bcvalue;    stab->value = value;    precbc = yasm_section_bcs_last(sect);    bc = yasm_bc_create_common(&stabs_bc_stab_callback, sizeof(stabs_bc_stab),			       bcvalue ? bcvalue->line : 0);    bc_stab = (stabs_bc_stab *)bc;    bc_stab->stab = stab;    bc->len = info->stablen;    bc->offset = precbc ? precbc->offset + precbc->len : 0;    yasm_section_bcs_append(sect, bc);    info->stabcount++;    return stab;}static voidstabs_dbgfmt_generate_n_fun(stabs_info *info, yasm_bytecode *bc){    /* check all syms at this bc for potential function syms */    int bcsym;    for (bcsym=0; bc->symrecs && bc->symrecs[bcsym]; bcsym++)    {        char *str;        yasm_symrec *sym = bc->symrecs[bcsym];        const char *name = yasm_symrec_get_name(sym);        /* best guess algorithm - ignore labels containing a . or $ */        if (strchr(name, '.') || strchr(name, '$'))            continue;        /* if a function, update basebc, and output a funcname:F1 stab */        info->basebc = bc;        str = yasm_xmalloc(strlen(name)+4);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产suv一区二区三区88区| 欧美三级视频在线播放| 91黄色激情网站| 精品久久久久久亚洲综合网| 欧美国产精品专区| 日韩成人av影视| av电影在线不卡| 久久久国产综合精品女国产盗摄| 夜夜嗨av一区二区三区网页| 国产呦萝稀缺另类资源| 欧美午夜在线一二页| 久久精品一区二区| 麻豆一区二区三区| 色天使久久综合网天天| 国产日韩一级二级三级| 美美哒免费高清在线观看视频一区二区 | 色呦呦国产精品| 国产亚洲综合在线| 日本不卡在线视频| 欧美日韩国产不卡| 亚洲美女屁股眼交3| 国产69精品久久久久毛片| 亚洲精品一区二区三区四区高清 | 三级久久三级久久| 色老汉av一区二区三区| 国产精品家庭影院| 大美女一区二区三区| 精品乱码亚洲一区二区不卡| 亚洲第一主播视频| 欧美日韩精品一区二区三区| 亚洲品质自拍视频| 色婷婷综合久久久久中文一区二区 | 婷婷丁香激情综合| 欧美日韩1234| 偷拍与自拍一区| 欧美美女黄视频| 五月综合激情日本mⅴ| 欧美午夜精品理论片a级按摩| 夜夜揉揉日日人人青青一国产精品| 午夜精品福利一区二区蜜股av | 亚洲五月六月丁香激情| 91国偷自产一区二区开放时间| 国产精品久久夜| 91啪九色porn原创视频在线观看| 日本一二三四高清不卡| 成人久久视频在线观看| 日韩伦理电影网| 91成人网在线| 亚洲一区在线视频| 欧美日韩精品三区| 青青草原综合久久大伊人精品 | 日本免费新一区视频| 日韩欧美在线不卡| 国产乱妇无码大片在线观看| 国产女人18毛片水真多成人如厕| 北条麻妃国产九九精品视频| 亚洲毛片av在线| 制服视频三区第一页精品| 久久精品久久久精品美女| 精品国产青草久久久久福利| 成人免费视频播放| 亚洲与欧洲av电影| 日韩一级视频免费观看在线| 国产99精品国产| 亚洲一区在线播放| 欧美一级在线观看| 丁香六月久久综合狠狠色| 亚洲美女免费视频| 91精品国产综合久久久久久久久久| 国内精品国产成人| 亚洲视频资源在线| 欧美一级生活片| 粉嫩13p一区二区三区| 一区二区三区在线观看视频| 欧美大尺度电影在线| 亚洲欧洲日韩av| 国产a视频精品免费观看| 亚洲精品高清在线观看| 日韩久久久精品| 色综合久久中文字幕综合网| 捆绑调教美女网站视频一区| 亚洲视频免费观看| 精品国产露脸精彩对白 | 国产一区二区视频在线| 亚洲免费av高清| 亚洲国产精品高清| 日韩精品中文字幕一区| 色婷婷精品大在线视频 | 日韩av午夜在线观看| 国产精品美女视频| 久久一区二区三区国产精品| 欧美探花视频资源| av福利精品导航| 国产高清不卡一区二区| 久久国产福利国产秒拍| 亚洲成人精品影院| 一区二区免费看| 专区另类欧美日韩| 中文字幕在线不卡| 久久久久久久综合色一本| 日韩免费视频线观看| 欧美日韩一区二区在线观看| 91在线视频18| 国产成人一区二区精品非洲| 久久国产夜色精品鲁鲁99| 亚洲成人黄色小说| 亚洲免费观看高清完整| 亚洲婷婷综合色高清在线| 国产日韩欧美精品电影三级在线 | 香蕉影视欧美成人| 国产精品你懂的在线| 91精品国产综合久久久蜜臀图片| 91麻豆视频网站| 美女在线一区二区| 久久精品国产第一区二区三区| 亚洲激情成人在线| 18成人在线观看| 久久久综合九色合综国产精品| 欧美一区二区三区在线观看视频| 99久久精品国产网站| 国产在线播放一区| 蜜桃视频在线一区| 天堂va蜜桃一区二区三区| 一区二区日韩电影| 亚洲老妇xxxxxx| 亚洲国产精品综合小说图片区| ...中文天堂在线一区| 国产欧美一区二区三区网站| 久久综合色婷婷| 日韩女优av电影| 欧美剧在线免费观看网站| 91精品一区二区三区久久久久久| 欧美性大战xxxxx久久久| 91在线观看成人| 成人动漫一区二区在线| 不卡电影免费在线播放一区| 91视频com| 在线观看日韩毛片| 欧美日韩激情一区二区| 欧美男女性生活在线直播观看| 欧美揉bbbbb揉bbbbb| 日本道色综合久久| 欧美综合亚洲图片综合区| 在线观看亚洲精品视频| 欧美日韩一区视频| 欧美一卡在线观看| 国产日本欧洲亚洲| 亚洲色图另类专区| 一区二区三区加勒比av| 性做久久久久久久免费看| 奇米影视在线99精品| 国产精品综合久久| 99精品视频在线免费观看| 欧美亚洲高清一区二区三区不卡| 欧美三级电影网站| 精品久久久久久久久久久久久久久 | 国产精品一区二区三区网站| 国产精品一区二区久久不卡| 国产激情精品久久久第一区二区 | 亚洲人吸女人奶水| 一区二区三区美女| 日本不卡在线视频| 丁香婷婷综合色啪| av亚洲产国偷v产偷v自拍| 欧美视频在线播放| 欧美精品一区二区在线观看| 一区二区三区**美女毛片| 日本人妖一区二区| www.亚洲激情.com| 欧美日韩国产另类一区| 国产日韩欧美一区二区三区乱码| 亚洲日本韩国一区| 国模少妇一区二区三区| 91视视频在线观看入口直接观看www | 国产精品欧美久久久久无广告| 亚洲男人的天堂av| 捆绑变态av一区二区三区| 成人v精品蜜桃久久一区| 欧美日韩精品系列| 欧美国产一区二区| 日本va欧美va瓶| 99精品热视频| 精品国产免费久久 | 国产欧美日韩精品一区| 国产精品欧美一级免费| 蜜臀久久99精品久久久久久9| 国产成人av一区二区三区在线观看| 欧美自拍偷拍一区| 欧美sm美女调教| 秋霞电影网一区二区| 91香蕉国产在线观看软件| 欧美mv和日韩mv的网站| 一区二区三区在线免费| 国产91精品露脸国语对白| 在线观看一区二区视频| 精品久久五月天| 免费三级欧美电影| 欧美日韩免费一区二区三区 | 欧美电影免费观看高清完整版在线观看 | 另类小说视频一区二区|