标签: loader

任何动手练习,以了解程序如何加载到内存并执行

我很好奇调用main()之前发生的事情,比如将可执行文件加载到内存中,动态加载共享库.您是否有任何建议如何通过实践练习来理解这些事情?

工具和我所知道的,现在使用,包括:

  • strace的
  • 拆卸
  • readelf
  • / proc /进程/图

注意:我知道伟大的书籍链接者和装载者,但动手练习可能比教我读书更好.

c linux mips elf loader

6
推荐指数
1
解决办法
1100
查看次数

是否可以替换操作系统的Loader?有什么方法可以获得对Loader的控制权?

我只是想知道是否有可能替换操作系统的Loader(可执行程序加载器而不是引导加载程序)(Windows是我的选择).是否有任何第三方加载器可以修补默认加载器.

有什么办法可以获得对OS Loader的控制吗?我的意思是,我希望我所看到的事情(每一步都可见).

如果你问我为什么要这样做, For learning purposes.

linux windows linker operating-system loader

6
推荐指数
2
解决办法
1699
查看次数

自定义AsyncTaskLoader回调问题

我的AsyncTaskLoader遇到了一些问题,不确定它们是否相关,因为它们在尝试重新启动Loader时都会发生.在我的应用程序中,我有3个自定义CursorAdapter实例,由3个由1个singleton LoaderManager管理的自定义AsyncTaskLoader实例支持.这些问题与两个不同的Adapter/Loader对有关,但在每种情况下使用的代码都是相同的:

getLoaderManager().restartLoader(loaderId, bundle, loaderManager);
Run Code Online (Sandbox Code Playgroud)

问题1:我调用restartLoader()并且LoaderManager注册了对onCreateLoader的调用,但没有注册到onLoaderReset().Loader获取deliverResult(),但永远不会调用onLoadFinished().Loader既没有设置'reset'或'started'标志(参见下面的代码).

问题2:我调用restartLoader()并且LoaderManager注册了对onLoaderReset()的调用.Loader获取onReset(),但没有进一步.Cursor设置为null,但没有加载新的Cursor.

任何想法可能是什么问题?以下是Loader和Loader Manager的一些代码:

CustomCursorLoader.java

@Override
protected void onStartLoading() {
    Log.v(TAG, "Starting Loader");
    if (lastCursor != null) {
        deliverResult(lastCursor);
    }
    if (takeContentChanged() || lastCursor == null) {
        forceLoad();
    }
}

@Override
public void deliverResult(Cursor cursor) {
    Log.v(TAG, "Delivering result");
    if (isReset()) {
        Log.v(TAG, "reset");
        if (cursor != null) {
            cursor.close();
        }
        return;
    }
    Cursor oldCursor = lastCursor;
    lastCursor = cursor;
    if (isStarted()) {
        Log.v(TAG, "started");
        super.deliverResult(cursor);
    }
    if (oldCursor != null && oldCursor != cursor …
Run Code Online (Sandbox Code Playgroud)

android loader android-asynctask android-loadermanager

6
推荐指数
1
解决办法
5279
查看次数

Java加密内存类加载器

我会说得对,所以你不必阅读很多东西.

基本上,我有一个AES-128位加密Jar文件.我想制作一个启动器,以便我可以将这个加密的Jar加载到内存中并运行它(使用密钥).

我有一个简单的类加载器工作,虽然除非我将它解密到一个目录并运行它,它显然不会做我需要的(解密和内存加载).

TL; DR:我需要在内存中运行AES-128bit加密Jar.

非常感谢任何帮助,随时提出问题!

java memory encryption class loader

6
推荐指数
1
解决办法
4176
查看次数

避免使用webpack + handlebars loader捆绑lib依赖项

我正在使用把手模板编写一个库,我想使用Webpack捆绑它.我正在使用把手加载器,以便我可以要求并预编译模板.

但是我不想把把手(也没有把手/运行时)包含在我编译的库中,因此,我想将它们设置为外部.

这是我的配置文件:

module.exports = {
    context: __dirname + '/src',
    entry: './index.js',
    output: {
        path: __dirname + '/dist',
        filename: 'stuff.js',
        libraryTarget: 'umd',
        library: 'Stuff'
    },
    externals: [{
        'handlebars/runtime': {
            root: 'Handlebars',
            amd: 'handlebars.runtime',
            commonjs2: 'handlebars/runtime',
            commonjs: 'handlebars/runtime'
        }
    }],
    module: {
        loaders: [
            { test: /\.handlebars$/, loader: 'handlebars-loader' }
        ]
    }
};
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用,车把装载机仍然使把手/运行时捆绑...

我相信这是因为我不直接需要把手/运行时,而是在加载器添加的代码中需要它.

有没有办法将其标记为外部?

编辑:我知道我需要把手/运行时来编译我的模板.但是当我构建一个库时,我希望它由库的用户提供而不是包含在内.这样,如果我的用户也在使用Handlebars,则库不会加载两次.我认为图书馆避免捆绑任何依赖是一种很好的做法(在我看来,这是我们经常看到的东西).

javascript loader handlebars.js webpack umd

6
推荐指数
1
解决办法
2305
查看次数

html页面中的页面加载器

我想在这个html页面的div部分显示一个加载器GIF图像.但我无法让它发挥作用.div内容被隐藏,GIF图像消失.

CSS:

.loader {
    background-image: url(image/Preloader_8.gif);
    background-repeat: no-repeat;
    height:100px;
    width:200px;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

<script type="text/javascript">
    $(window).load(function() {
        $(".loader").fadeOut("slow");
    })
</script>
Run Code Online (Sandbox Code Playgroud)

HTML:

<body>
    <div class="loader">
        Loading Image
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery loader

6
推荐指数
1
解决办法
1620
查看次数

如何取消AsyncTaskLoader工作?

我注意到AsyncTaskLoader,Loader和LoaderManager的以下函数:

事情是,我不明白他们的工作方式:

  1. 他们之间有什么区别?
  2. 他们中的任何一个在加载器的线程上调用"interrupt"吗?如果没有,是否可能?
  3. 当调用这些函数时,加载程序如何停止其操作?
  4. 加载器如何取消自身(因为两个函数只需要在UI线程上运行)?
  5. 销毁/重置/放弃加载器是否也取消了它?
  6. 即使加载器还没有启动," isLoadInBackgroundCanceled " 也会返回true吗?
  7. UI线程如何知道加载器已被取消?它应该使用" isLoadInBackgroundCanceled "吗?
  8. 取消装载机的典型做法是什么?重启一个装载机?要重新启动加载程序但输入不同?

android loader asynctaskloader

6
推荐指数
0
解决办法
281
查看次数

如何访问通过 Loader 加载的 qml 页面的公共属性?

AA.qml

Item
{
    id:             drawLinesOnC

    property string  lineColour
    property int     lineDrawingSourceType
    property variant startEndPointArray

}
Run Code Online (Sandbox Code Playgroud)

主文件

Loader
{
   id:     drawLineLoaderA
   source: "AA.qml"
}
Run Code Online (Sandbox Code Playgroud)

——

如何访问AA.qml通过 Loader 加载的页面的公共属性drawLineLoaderA

qt loader qml qt-quick

5
推荐指数
1
解决办法
3545
查看次数

PC 与负载或链接地址有什么关系?

链接地址是程序执行发生的地址,而加载地址是程序实际放置在内存中的地址。

现在我很困惑程序计数器的值是什么?是加载地址还是链接地址?

linker operating-system loader computer-architecture program-counter

5
推荐指数
1
解决办法
1216
查看次数

webpack loader:如何将文件添加到文件系统缓存

我正在尝试编写一个加载程序,将衍生文件添加到 webpack 文件系统缓存中。

在高层次上,我有一个 CSS 加载器,它应该为 CSS 类生成 TypeScript 类型定义文件。这个加载器位于加载器顺序的中间,因为我正在为 CSS 模块生成这些文件。

我可以使用 编写这些文件fs,但是直到下次运行 webpack 时,TypeScript 加载器才会看到这些文件。这使得 TS 第一次抛出错误。

如何让加载器修改 webpack 的文件系统缓存?

loader typescript webpack css-modules

5
推荐指数
0
解决办法
325
查看次数